-1

我正在将 Excel 文件中的数据读取到 R 中的 data.table 中。该文件的格式如下:

   COL_1_STUFF COL_2_STUFF COL_3_STUFF
ID EST MOE PCT EST MOE PCT EST MOE PCT

也就是说,对于每个变量(COLs),都有一个估计值、一个误差范围和一个给定的百分比。

麻烦是由 造成的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)]

这让我觉得处理问题的方式很奇怪。任何人都可以建议另一种方法吗?

4

1 回答 1

3

这可以通过 、 和 的参数来check.names完成:freaddata.tablesetDT

DT <- read.xlsx2(
  "file.xlsx", sheetIndex = 1L, colIndex = c(1L, 4L, 7L), startRow = 2L)
)
setDT(DT, check.names = TRUE)

自动将.1,.2等添加到重复的列名。

于 2015-07-18T16:50:39.143 回答