我需要对数据框进行子集化,但我不知道使用什么条件。
df2<-subset(df, condition )
A part of the dataframe, `df`:
state value
a 1
b 2
c 3
a 1
b 4
c 5
我使用value
table(df$state)
列的总和
我需要创建一个日期框架,其中我只显示value
列的总和大于给定值x的行。
如果x是3,我需要在新数据框中只有具有&#34;状态&#34;的行。列等于b或c。
我应该更换什么&#34;条件&#34;用?我如何在条件中使用table(df$state)
?
答案 0 :(得分:1)
目前尚不清楚你想做什么。
table(df$state)
计算数据中每个状态的出现次数,而不是每个“状态”的变量“值”的总和。您应该使用以下内容:
vv <- tapply(dat$value,dat$state,sum)
vv
a b c
2 6 8
现在您可以在subset
中使用结果,以获得值列的总和大于给定值x的总和。例如x == 3:
subset(dat,state %in% names(vv)[vv>3])
或不使用`子集(更有效)
dat[dat$state %in% names(vv)[vv>3],]