0

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

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,我需要在新数据框中只包含“状态”列等于 b 或 c 的行。

我应该用什么替换“条件”?我该如何使用 :table(df$state)在这种情况下?

4

1 回答 1

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])

或不使用`subset(更有效)

dat[dat$state %in% names(vv)[vv>3],]
于 2013-10-14T08:43:06.943 回答