处理 data.table 中不明确的列名
Dealing with ambiguous column names in data.table
我正在将 Excel 文件中的数据读入 R 中的 data.table。文件格式如下:
COL_1_STUFF COL_2_STUFF COL_3_STUFF
ID EST MOE PCT EST MOE PCT EST MOE PCT
也就是说,对于每个变量 (COL
s),都有一个估计值、误差幅度和给定的百分比。
问题是由 read.xlsx2
造成的,我正在使用它来导入文件,如下所示:
data <- as.data.table(read.xlsx2(
"file.xlsx", sheetIndex = 1L, colIndex = c(1L, 4L, 7L), startRow = 2L))
问题是 read.xlsx2
将相同的列名分配给一堆东西——导入看起来像这样:
ID EST EST EST
即使我设置 header = FALSE
,我也很容易得到类似
的东西
X1 X2 X2 X2
为了避免这种情况,我在导入后执行了以下操作:
data[ , c("col1_est", "EST") := .(EST, NULL)]
data[ , c("col2_est", "EST") := .(EST, NULL)]
data[ , c("col3_est", "EST") := .(EST, NULL)]
我觉得这是一种奇怪的处理问题的方式;谁能建议另一种方法?
这可以通过 fread
、data.table
和 setDT
的 check.names
参数来完成:
DT <- read.xlsx2(
"file.xlsx", sheetIndex = 1L, colIndex = c(1L, 4L, 7L), startRow = 2L)
)
setDT(DT, check.names = TRUE)
自动将 .1
、.2
等添加到重复的列名中。
我正在将 Excel 文件中的数据读入 R 中的 data.table。文件格式如下:
COL_1_STUFF COL_2_STUFF COL_3_STUFF
ID EST MOE PCT EST MOE PCT EST MOE PCT
也就是说,对于每个变量 (COL
s),都有一个估计值、误差幅度和给定的百分比。
问题是由 read.xlsx2
造成的,我正在使用它来导入文件,如下所示:
data <- as.data.table(read.xlsx2(
"file.xlsx", sheetIndex = 1L, colIndex = c(1L, 4L, 7L), startRow = 2L))
问题是 read.xlsx2
将相同的列名分配给一堆东西——导入看起来像这样:
ID EST EST EST
即使我设置 header = FALSE
,我也很容易得到类似
X1 X2 X2 X2
为了避免这种情况,我在导入后执行了以下操作:
data[ , c("col1_est", "EST") := .(EST, NULL)]
data[ , c("col2_est", "EST") := .(EST, NULL)]
data[ , c("col3_est", "EST") := .(EST, NULL)]
我觉得这是一种奇怪的处理问题的方式;谁能建议另一种方法?
这可以通过 fread
、data.table
和 setDT
的 check.names
参数来完成:
DT <- read.xlsx2(
"file.xlsx", sheetIndex = 1L, colIndex = c(1L, 4L, 7L), startRow = 2L)
)
setDT(DT, check.names = TRUE)
自动将 .1
、.2
等添加到重复的列名中。