【问题标题】:Use variable instead of data table column name reference in sum在 sum 中使用变量而不是数据表列名引用
【发布时间】:2018-03-23 12:01:52
【问题描述】:

我有一个表(Table1),包含超过 200 列和数千行的数字数据,其中大部分是月份,列名的格式为“Jan 2018”、“Feb 2018”等。

report[1,2] <- sum(Table1$`Mar 2018`[which(Table1$`Product`=="Apples")])

我不想使用“2018 年 3 月”,而是想以某种方式将其替换为变量名(我们称之为 searchMonth)。

这可能吗?

【问题讨论】:

    标签: r variables sum names


    【解决方案1】:

    我们可以使用[[ 来做到这一点

    searchMonth <- "Mar 2018"
    sum(Table1[[searchMonth]][Table1$Product=="Apples"])
    

    仅当列名中有空格或特殊字符时才需要反引号或引号。否则,可以不加引号直接提取出来

    【讨论】:

    • @akrun 在这种情况下是否有特定的理由更喜欢[[ 而不是[
    • @doviod [[ 提取列作为向量,而[ 仍然是一个列表或data.frame,只有一列。 sum 作用于vectors 而不是data.frame。您可以通过class(Table[searchMonth])class(Table[[searchMonth]]) 进行检查
    • @akrun 哦,我不知道。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多