R错误:“新列将在现有列之后留下漏洞”

时间:2017-04-11 00:04:22

标签: r dataframe

我有两个数据框,一个是任务的准确性,另一个是响应时间(RT)。我试图只获得正确试验的RT,而不是所有的试验。我已经做到了,因此准确度表中的错误试验显示为NA,当试图在RT表中创建相应的单元格NA时,我似乎得到了错误:

Error in `[<-.data.frame`(`*tmp*`, which(is.na(ACC)), value = NA) : new columns would leave holes after existing columns

代码相当简单 - 我已经尝试了随机生成的数据,它似乎工作得很好。代码如下:

打开文件

ACC <- read_excel("PJ_ACC_TABLE.xlsx", sheet = 1)
RT <- read_excel("PJ_RT_TABLE.xlsx", sheet = 1)

将错误更改为NA

ACC <- ifelse(ACC>0,1,NA)

更改

RT[which(is.na(ACC))] <- NA

我的ACC表格如下:

ACC table

虽然我的RT表看起来像:

RT table

我注意到在我更改ACC表以包含NA之后,它变成了一个向量。

任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用此RTis.na(ACC)编制索引。如果RT和ACC具有相同的维度,则此答案将起作用。

#example data
RT <-data.frame(matrix(1:25,ncol=5))
ACC <-data.frame(matrix(rep(1,25),ncol=5))
ACC[c(1,3,5),c(2,3,4)] <-NA

#Put NA in RT where ACC is NA
RT[is.na(ACC)] <-NA
RT

  X1 X2 X3 X4 X5
1  1 NA NA NA 21
2  2  7 12 17 22
3  3 NA NA NA 23
4  4  9 14 19 24
5  5 NA NA NA 25