如何使用循环提取数据帧中的特定标头?(使用R Studio)

如何使用循环提取数据帧中的特定标头?(使用R Studio),r,R,所以数据是这样的 SalesData是一个data.frame SalesData$Day1是数字列,包括每个成员第一天的销售数据。第二天和第三天的费用也是一样$第50天 我试图通过使用loop创建一个包含50个数字数据的新列,即每天销售额的总和 我试过了 for (i in 1:50) {SalesData$Dailysum[i] <- sum(SalesData$get(colnames(SalesData)[i])) Error: attempt to apply non-func

所以数据是这样的

  • SalesData是一个data.frame
  • SalesData$Day1是数字列,包括每个成员第一天的销售数据。第二天和第三天的费用也是一样$第50天
  • 我试图通过使用loop创建一个包含50个数字数据的新列,即每天销售额的总和

    我试过了

    for (i in 1:50)
    {SalesData$Dailysum[i] <- sum(SalesData$get(colnames(SalesData)[i]))
    
    Error: attempt to apply non-function
    
    也不管用


    是否有任何方法可以使用循环提取标题,并将其用于循环?

    我们可以这样做,而不是
    get
    ,因为它可以用于数字索引或列名

    for(i in 1:50)
      SalesData$Dailysum[i] <- sum(SalesData[[i]], na.rm = TRUE)
    

    您是否只想要
    colSums(SalesData)
    ?@AndrewGustar我尝试过它,但不幸的是它不适用,因为SalesData$names是一个包含销售团队名称的字符列。不过,在我尝试删除$names列后,它运行得非常好。谢谢你的帮助。嗨,你能提供一个复制数据格式的简单例子吗?看,哇!它起作用了!非常感谢。我可以问一下我的代码不起作用吗?@EliyahJung您的代码不起作用,因为您正在使用
    get
    对带有
    $
    的列名进行操作。1) 不需要使用
    get
    ,2)使用
    [
    从对象名称进行子集设置,因为
    $
    查找文字求值,即`SalesData[[names(SalesData)[1]]]]`工作。关于,
    get
    ,它在全局环境中查找对象,而列名仅在数据集SalesData的环境中可用
    for(i in 1:50)
      SalesData$Dailysum[i] <- sum(SalesData[[i]], na.rm = TRUE)
    
    library(dplyr)
    SalesData %>%
        summarise(across(where(is.numeric), sum, na.rm = TRUE))