Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RMySQL错误-行名称重复_R_Rmysql - Fatal编程技术网

RMySQL错误-行名称重复

RMySQL错误-行名称重复,r,rmysql,R,Rmysql,当我运行下面的代码来读取我的MySQL服务器表时,我得到下面的错误 my_data <- dbReadTable(mydb, "ar_data") Warning message: row.names not set (duplicate elements in field) my_data以下是一些选项: library(RMySQL) library(DBI) drv <- dbDriver("MySQL") con <- dbConnect (drv, dbnam

当我运行下面的代码来读取我的MySQL服务器表时,我得到下面的错误

my_data <- dbReadTable(mydb, "ar_data")
Warning message:
row.names not set (duplicate elements in field) 

my_data以下是一些选项:

library(RMySQL) 
library(DBI)
drv <- dbDriver("MySQL") 
con <- dbConnect (drv, dbname="mydb", user="username") 

data <- mtcars; rownames(data) <- NULL; data$row_names <- rownames(mtcars)[1]
dbWriteTable(con, "mtcars", data, overwrite = T, row.names = F)
head( dbReadTable(con, "mtcars"), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4
# Warning message:
# row.names not set (duplicate elements in field) 

# suppress warnings
head( suppressWarnings(dbReadTable(con, "mtcars")), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4

# rename column row_names to rn
dbSendQuery(con, "ALTER TABLE mtcars CHANGE COLUMN row_names rn TEXT")
head( dbReadTable(con, "mtcars"), 3 )
#          rn  mpg cyl disp  hp drat    wt  qsec vs am gear carb
# 1 Mazda RX4 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# 2 Mazda RX4 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# 3 Mazda RX4 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

dbSendQuery(con, 'DROP TABLE mtcars')
dbDisconnect(con)
库(RMySQL)
图书馆(DBI)

drv以下是一些选项:

library(RMySQL) 
library(DBI)
drv <- dbDriver("MySQL") 
con <- dbConnect (drv, dbname="mydb", user="username") 

data <- mtcars; rownames(data) <- NULL; data$row_names <- rownames(mtcars)[1]
dbWriteTable(con, "mtcars", data, overwrite = T, row.names = F)
head( dbReadTable(con, "mtcars"), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4
# Warning message:
# row.names not set (duplicate elements in field) 

# suppress warnings
head( suppressWarnings(dbReadTable(con, "mtcars")), 3 )
#    mpg cyl disp  hp drat    wt  qsec vs am gear carb row_names
# 1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 Mazda RX4
# 2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 Mazda RX4
# 3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 Mazda RX4

# rename column row_names to rn
dbSendQuery(con, "ALTER TABLE mtcars CHANGE COLUMN row_names rn TEXT")
head( dbReadTable(con, "mtcars"), 3 )
#          rn  mpg cyl disp  hp drat    wt  qsec vs am gear carb
# 1 Mazda RX4 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# 2 Mazda RX4 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# 3 Mazda RX4 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

dbSendQuery(con, 'DROP TABLE mtcars')
dbDisconnect(con)
库(RMySQL)
图书馆(DBI)

这不是错误,这是警告。您的表可能有一列名为
row\u names
。而
dbReadTable
则希望用它来设置数据帧在R中的行名称。但要做到这一点,R需要该列中的唯一值——这里的情况似乎不是这样。因此,
my_data
将不会有行名称,而是有一个名为
row_name
的列。如果您不喜欢此警告,请将
dbReadTable
包装到
suppressWarnings()
中。这不是错误,而是警告。您的表可能有一列名为
row\u names
。而
dbReadTable
则希望用它来设置数据帧在R中的行名称。但要做到这一点,R需要该列中的唯一值——这里的情况似乎不是这样。因此,
my_data
将不会有行名称,而是有一个名为
row_name
的列。如果您不喜欢此警告,请将
dbReadTable
包装到
suppressWarnings()
中。