如何在R中建立中位数表?
我有多个问题的数据,分为三组。我想在这样的矩阵中总结一下中间值如何在R中建立中位数表?,r,for-loop,matrix,R,For Loop,Matrix,我有多个问题的数据,分为三组。我想在这样的矩阵中总结一下中间值 numQuestions也许您可以尝试下面的代码 sapply( 集合名(列表(结果1、结果2、结果3),c(“组1”、“组2”、“组3”), 函数(v)miscTools::colMedians(v[numQuestions],na.rm=TRUE) ) 也许你可以试试下面的代码 sapply( 集合名(列表(结果1、结果2、结果3),c(“组1”、“组2”、“组3”), 函数(v)miscTools::colMedians(v[
numQuestions也许您可以尝试下面的代码
sapply(
集合名(列表(结果1、结果2、结果3),c(“组1”、“组2”、“组3”),
函数(v)miscTools::colMedians(v[numQuestions],na.rm=TRUE)
)
也许你可以试试下面的代码
sapply(
集合名(列表(结果1、结果2、结果3),c(“组1”、“组2”、“组3”),
函数(v)miscTools::colMedians(v[numQuestions],na.rm=TRUE)
)
我不是R方面的专家,但我认为使用字符串调用对象并不理想。更好的方法是将3个results
对象放在一个对象中-可能通过执行results=list(results1、results2、results3)
-然后将循环更改为:
for(i in rownames(medians)){
for(j in c(1:3)){
medians[i,j] <- median(results[[j]][[i]])}}
用于(行名中的i(中间值)){
对于(c中的j(1:3)){
medians[i,j]我不是R方面的专家,但我认为使用字符串来调用对象并不理想。更好的方法是将3个结果
对象放在一起-可能通过执行结果=列表(results1,results2,results3)
,然后将循环更改为:
for(i in rownames(medians)){
for(j in c(1:3)){
medians[i,j] <- median(results[[j]][[i]])}}
用于(行名中的i(中间值)){
对于(c中的j(1:3)){
中位数[i,j]研究help($)
。研究help($)
。我认为sapply()
是我需要的一部分,但是我从这个矩阵中只得到了NA
。我发现了我的错误:数据框中有一些NA
字段。通过向函数添加NA.rm
参数,我得到了我想要的。我已经在你的答案中编辑了它。谢谢!@skranz是的,如果你有NA
值,你应该这样做有选项na.rm=TRUE
在那里。我已经接受了你的编辑。我想sapply()
是我需要的一部分,但是我从这个矩阵中只得到了NA
。我发现了我的错误:数据框中有一些NA
字段。通过向函数添加NA.rm
参数,我得到了我想要的。我已经在你的答案中编辑了它。谢谢!@skranz是的,如果你有NA
值,你应该这样做在那里有选项na.rm=TRUE
。我已接受您的编辑。