用 R 中的列制作列表
Making a List out of a Column in R
我正在尝试从我的 DataFrame 的特定列中列出一个列表。
但如果要添加到列表中,它应该取决于另一列。
例如,如果数据帧是:
names <- c('Word1','Word2','Word3')
quant <- c(5, NA, 10)
my.data <- data.frame(names, quant)
现在我只想列出带有数量的单词,而忽略带有“NA”的单词。
有没有一种聪明而快速的方法来做到这一点?
这种情况下的最终列表应该是 (Word1, Word3)
非常感谢您的帮助。我是 R 的初学者,我唯一的选择是循环遍历数据帧并检查每个值。
我们可以使用 complete.cases
。 na.omit
删除所有 NA
。使用 complete.cases
我们可以部分 select 列。请参阅 my.data[complete.cases(my.data[1,1]),]
与 my.data[complete.cases(my.data[1:2,2]),]
:
my.data[complete.cases(my.data),]
names quant
1 Word1 5
3 Word3 10
并且更快:
library(microbenchmark)
microbenchmark(
na.omit(my.data)$names,
my.data[complete.cases(my.data),]
)
Unit: microseconds
expr min lq mean median uq max neval cld
na.omit(my.data)$names 46 46.95 50.457 47.60 49.4 90.9 100 b
my.data[complete.cases(my.data), ] 22 22.80 25.522 23.65 24.3 133.5 100 a
这是您要找的吗?
na.omit(my.data)
names quant
1 Word1 5
3 Word3 10
或者可以将 subset
与 is.na
一起使用并取反 (!
)
subset(my.data, !is.na(quant))
names quant
1 Word1 5
3 Word3 10
我正在尝试从我的 DataFrame 的特定列中列出一个列表。
但如果要添加到列表中,它应该取决于另一列。
例如,如果数据帧是:
names <- c('Word1','Word2','Word3')
quant <- c(5, NA, 10)
my.data <- data.frame(names, quant)
现在我只想列出带有数量的单词,而忽略带有“NA”的单词。 有没有一种聪明而快速的方法来做到这一点? 这种情况下的最终列表应该是 (Word1, Word3)
非常感谢您的帮助。我是 R 的初学者,我唯一的选择是循环遍历数据帧并检查每个值。
我们可以使用 complete.cases
。 na.omit
删除所有 NA
。使用 complete.cases
我们可以部分 select 列。请参阅 my.data[complete.cases(my.data[1,1]),]
与 my.data[complete.cases(my.data[1:2,2]),]
:
my.data[complete.cases(my.data),]
names quant
1 Word1 5
3 Word3 10
并且更快:
library(microbenchmark)
microbenchmark(
na.omit(my.data)$names,
my.data[complete.cases(my.data),]
)
Unit: microseconds
expr min lq mean median uq max neval cld
na.omit(my.data)$names 46 46.95 50.457 47.60 49.4 90.9 100 b
my.data[complete.cases(my.data), ] 22 22.80 25.522 23.65 24.3 133.5 100 a
这是您要找的吗?
na.omit(my.data)
names quant
1 Word1 5
3 Word3 10
或者可以将 subset
与 is.na
一起使用并取反 (!
)
subset(my.data, !is.na(quant))
names quant
1 Word1 5
3 Word3 10