将函数应用于数据框的子集

时间:2016-08-17 13:57:17

标签: r

看到一些相关的问题,但没有任何真正给我我需要的东西(或者我可能只是不理解)。

我有一个如下所示的数据框:

Date   City A   City B City C
8/17     55       65    75
8/18     48       85    23

除了它超过3个城市。我想将一个函数应用于数据框中除日期之外的每一列 - 我可以将函数应用于每一列,这样做就可以了,但我正在寻找某种符号,将函数应用于所有内容除了日期列(以容纳具有不同列名的DF)。

尝试申请,改造,但没有运气。应该提到的是,我已经和R一起工作了大约一个月,所以我不是很擅长(还是!)。

提前感谢,感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

您只需申请df[,-1]

df=data.frame(Date=c("A","B"), City_A=c(55,48),City_B=c(65,85),City_C=c(75,23))
apply(df[,-1],1,sum)
[1] 195 156

如果您不知道列的索引而只知道名称,则可以使用: -(which(colnames(df)=="Date"))代替-1

apply(df[,-(which(colnames(df)=="Date"))],1,sum)
[1] 195 156

如果您更喜欢lapply版本,可以使用

lapply(df[,-(which(colnames(df)=="Date"))],sum)

这将返回一个列表

相关问题