R尝试在数据集的多个子集上以宏形式运行dfsummary和freqs

橙色是数据集软件包中默认安装的数据集,它与我的真实数据最接近。我添加了另外一列带有空格的文本,因为它代表了我的真实数据中的该列,该列也具有空格以及需要作为子集的内容。而且我知道我可以将dfsummary和freq代码复制并粘贴13次(真正需要多少次),但我真的不想这样做。谁能得到这个工作?我希望新的数据集是Tree1,Tree2,Tree3,Tree4和Tree5,但是paste()函数不喜欢我写的内容,并且我想为每个子集获取dfsummary和freqs(从summarytools中获取)。 / p>

orange <- data.frame(Orange)

#Add a another variable to play with.
orange$row[orange$Tree==1] <- "Row 1"
orange$row[orange$Tree==2] <- "Row 2"
orange$row[orange$Tree==3] <- "Row 3"
orange$row[orange$Tree==4] <- "Row 4"
orange$row[orange$Tree==5] <- "Row 5"

#start macro
bytree <- defmacro(df,tree,row,expr={

                       #subset for tree
                       paste(Tree,tree) <- subset(df,row==row)

                       #write out the dfsummary info
                       #Be sure to include the varnumbers=FALSE or you'll have the 1,2,3,on the left side.
                       dfSummary(paste(Tree,tree),style = "grid",plain.ascii = TRUE,varnumbers = FALSE,valid.col = FALSE,tmp.img.dir = "./img")

                       freq(paste(Tree,tree)[,c("age","circumference")])

                     })


bytree(orange,1,"Row 1")
bytree(orange,"Row 2")
bytree(orange,"Row 3")
bytree(orange,4,"Row 4")
bytree(orange,5,"Row 5")
gaoyuanzhiyun 回答:R尝试在数据集的多个子集上以宏形式运行dfsummary和freqs

不确定是否找到了解决方案,但这是一个可供将来参考的解决方案:

orange <- data.frame(Orange)

# For freq,we need to call it separately for the 2 variables
stby(data=orange$age,orange$Tree,freq)
stby(data=orange$circumference,freq)

stby(data=orange,dfSummary)
本文链接:https://www.f2er.com/3157996.html

大家都在问