【发布时间】:2019-01-28 16:50:25
【问题描述】:
我正在尝试制作一个带有标题行的大型空白 data.table,以便在设置后在特定位置添加值。我已经能够复制第一行,然后清除every other row 或每一行,但我想做的是清除标题行之后的每一行。有些列是数字输入,有些是字符输入。
[input3]:
headers: header1 header2 header3..... header 60+
Values: NA NA NA ... NA
重复行:
input3 <- input2[rep(1:nrow(input2), each = 2), ]
清除每一行:
input3[1:nrow(input3) %% 1 == 0, ] <- NA
但是,如果我尝试将其重写为从第 2 行开始复制空白行(以保留标题),我会收到此错误:
input3[2:nrow(input3) %% 1 == 0, ] <- NA
“[.data.table(x, i, which = TRUE) 中的错误:i 计算为逻辑向量长度 9,但有 10 行。不再允许回收逻辑 i,因为它隐藏了比值得更多的错误难得的方便。如果您确实需要回收,请显式使用 rep(...,length=.N)。"
我需要能够在保留标题的同时动态添加行,因为这将是一个巨大的表,我将导出到另一个程序。
编辑:这与this 链接不同,因为我添加了数据中最初未指定的其他行。不只是擦除行。
【问题讨论】:
-
改为使用
input3[c(FALSE,2:nrow(input3) %% 1 == 0),] <- NA。通过使用2:nrow,您明确给出的参数太少。当那个 thing 是一个逻辑向量时,它必须是长度为 1 或与行数相同。期间。 -
我认为我们缺少括号
-
好的,我让它与 input3[c(FALSE,2:nrow(input3) %% 1 == 0),]
-
警告:当我说 “它必须是” 时,我的意思是不这样做(并且依赖于回收)很容易出现问题。最糟糕的情况是,当您的意图与预期不同时,它会默默地成功。
标签: r header duplicates data.table row