在r中使用子集的问题

时间:2013-10-14 07:50:48

标签: r

我需要对数据框进行子集化,但我不知道使用什么条件。

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)

1 个答案:

答案 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],]