R 如何选择具有某列完整事例的数据?
我正在尝试获取一个数据帧(R 如何选择具有某列完整事例的数据?,r,R,我正在尝试获取一个数据帧(just.samples.with.sweal.values),它只包含具有非NA值的样本。我曾尝试使用complete.cases函数来实现这一点,但我认为我在下面的语法上做了一些错误的事情: data <- structure(list(Sample = 1:14, Head = c(1L, 0L, NA, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L), Shoulders = c(13L, 14L, NA, 18
just.samples.with.sweal.values
),它只包含具有非NA
值的样本。我曾尝试使用complete.cases
函数来实现这一点,但我认为我在下面的语法上做了一些错误的事情:
data <- structure(list(Sample = 1:14, Head = c(1L, 0L, NA, 1L, 1L, 1L,
0L, 0L, 1L, 1L, 1L, 1L, 0L, 1L), Shoulders = c(13L, 14L, NA,
18L, 10L, 24L, 53L, NA, 86L, 9L, 65L, 87L, 54L, 36L), Knees = c(1L,
1L, NA, 1L, 1L, 2L, 3L, 2L, 1L, NA, 2L, 3L, 4L, 3L), Toes = c(324L,
5L, NA, NA, 5L, 67L, 785L, 42562L, 554L, 456L, 7L, NA, 54L, NA
)), .Names = c("Sample", "Head", "Shoulders", "Knees", "Toes"
), class = "data.frame", row.names = c(NA, -14L))
just.samples.with.shoulder.values <- data[complete.cases(data[,"Shoulders"])]
print(just.samples.with.shoulder.values)
数据您可以尝试使用is.na
:
data[!is.na(data["Shoulders"]),]
Sample Head Shoulders Knees Toes
1 1 1 13 1 324
2 2 0 14 1 5
4 4 1 18 1 NA
5 5 1 10 1 5
6 6 1 24 2 67
7 7 0 53 3 785
9 9 1 86 1 554
10 10 1 9 NA 456
11 11 1 65 2 7
12 12 1 87 3 NA
13 13 0 54 4 54
14 14 1 36 3 NA
您也可以尝试complete.cases
,它将返回一个逻辑向量,允许通过shoels
data[complete.cases(data$Shoulders), ]
# Sample Head Shoulders Knees Toes
# 1 1 1 13 1 324
# 2 2 0 14 1 5
# 4 4 1 18 1 NA
# 5 5 1 10 1 5
# 6 6 1 24 2 67
# 7 7 0 53 3 785
# 9 9 1 86 1 554
# 10 10 1 9 NA 456
# 11 11 1 65 2 7
# 12 12 1 87 3 NA
# 13 13 0 54 4 54
# 14 14 1 36 3 NA
使用is.na和complete.cases之间存在细微差别。
is.na将删除实际na值,而此处的目标是仅控制变量,而不处理缺失值/na的那些可能是合法数据点的值,如果使用“[”如果只有一个参数且没有逗号,它将选择列,而不是您想要的行。只需在括号和行末尾的左方括号之间添加一个逗号,]