【发布时间】:2015-06-23 21:43:02
【问题描述】:
我有一个 R 数据框,其中包含来自多个主题的数据,每个主题都测试了几次。为了对集合进行统计,有一个主题(“id”)因子和每个观察值(大约 40,000 个)的一行,每个观察值大约有 200 个变量。
allData <- data.frame(id = rep(1:4, 3),
session = rep(1:3, each = 4),
measure1 = sample(c(NA, 1:11)),
measure2 = sample(c(NA, 1:11)),
measure3 = sample(c(NA, 1:11)),
measure4 = sample(c(NA, 1:11)))
allData
# id session measure1 measure2 measure3 measure4
# 1 1 1 3 7 10 6
# 2 2 1 4 4 9 9
# 3 3 1 6 6 7 10
# 4 4 1 1 5 2 3
# 5 1 2 NA NA 5 11
# 6 2 2 7 10 6 5
# 7 3 2 9 8 4 2
# 8 4 2 2 9 1 7
# 9 1 3 5 1 3 8
# 10 2 3 8 3 8 1
# 11 3 3 11 11 11 4
# 12 4 3 10 2 NA NA
鉴于“measureX”(X=1,..,4) 列在 id 1 和 4 的行之一中包含 NA,我需要删除所有 id 为 1 和 4 的行。
flodel 在 [https://stackoverflow.com/a/9917524/5042101][1] 中建议使用“plyr”包和函数 ddply 解决此问题。
probeColumns = c('measure1','measure4')
library(plyr)
ddply(allData, "id",
function(df)if(any(is.na(df[, probeColumns]))) NULL else df)
问题。我的数据库包括大约 40,000 行和 200 列。尝试单列时出现错误:C stack usage 10027284。
我在 Windows 上的 RStudio 中使用 R 3.1.3。当尝试更多列时,RStudio 会自动关闭或 R 冻结。此外,我无权访问计算机中的管理员会话。
【问题讨论】:
-
id==(1,4) 是什么意思?这不是 R 语法,所以口头描述会很有用
-
@rsoren -
id %in% c(1,4)我认为他们的意思是。
标签: r