【发布时间】:2015-01-09 17:42:44
【问题描述】:
我正在将 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)]
这让我觉得处理问题的方式很奇怪;任何人都可以建议另一种方法吗?
【问题讨论】:
-
也许您可以尝试将您的 Excel 文件转换为 csv 并使用 data.table 的
fread将数据读入 R。 -
听起来您正在处理多行标题。你希望输出是什么样的?
-
@KFB 我想到了,但我想找到一个不涉及的解决方案——对我来说不是这样,但我可以想象有人拥有大量文件像我一样格式化,正在寻找程序化解决方案
-
@AnandaMahto 是的,这就是我要找的词汇!只要我可以成功导入数据框/数据表对象而没有模糊命名的列,我就可以在 R 中处理其余的清理/操作。
标签: r data.table heading