如何使用循环提取数据帧中的特定标头?(使用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
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))