我在r中有一个数据帧dat1,我想为dat1中的所有数据创建另一个数据帧,其中column2具有特定值。
例如:
dat1 = [1 2 3 4 5 6]
dat2应该包含dat1 $ column2 == 2的所有数据。
我该怎么办?
答案 0 :(得分:1)
tidyverse中的过滤器功能将为您做到这一点:
# setup
library(tidyverse)
dat1 <- data.frame('x' = c(1:5), 'y' = rnorm(5,0,1))
# solution
dat2 <- dat1 %>% filter(x == 2)
请注意,%>%
是一个“管道”,告诉它将dat1
馈入filter()
函数,并取dat1
的行,其中x
是2 ,并将它们存储为dat2
还有其他一些解决方案,例如索引
dat1[dat1[,'x'] == 2,]
还有subset()
函数
subset(dat1, x == 2)
答案 1 :(得分:0)
我将使用内置函数来过滤数据帧。
dat1 = data.frame(col=c(1,2,3,4,5,6))
dat2 = dat1[dat1$col ==2,]
dat2将作为单个值而不是作为数据帧返回。