我正在r
中创建一个加载csv
文件中某些数据的脚本。所以我使用这些功能来加载我的数据
data <- read.csv("info.csv",colClasses = "character")
我的数据看起来像这些
a b c d ...
1 "A" 3 4 ...
5 "B" 7 8 ...
9 "C" 7 4 ...
9 "C" 2 5 ...
9 "A" 1 6 ...
如何只过滤包含“C”或“A”或两者或任何其他字符串的行?
答案 0 :(得分:2)
如果数据是data.frame,则可以
data[data$b == "C",]
在B列中获取包含C的所有行
答案 1 :(得分:2)
仅限A,您可以尝试:
data.Aonly <- data[data$b == "A", ]
或使用subset()
命令:
data.Aonly <- subset(data, b == "A")
对于A或C,您可以使用%in%
运算符:
data.AC <- data[data$b %in% c("A", "C"), ]
,或
data.AC <- subset(data, b %in% c("A", "C"))
答案 2 :(得分:2)
在dplyr包中,我们采用以下形式:
data %.% filter(b == "A") ## OR...
filter(data, b == "A")
所以这里是一个真实的数据集。但是dplyr更多的是与性能相关的任务。如果您真正想要的是从一个小数据集中获取一些行,那么这可能不是最佳答案。
library(dplyr)
filter(mtcars, gear == 4) # OR...
tbl_df(mtcars) %.% filter(gear == 4)
tbl_df(mtcars) %.% filter(gear == 3)
tbl_df(mtcars) %.% filter(gear %in% 3:4)