在 R 中使用现有输出添加重要的星星行

Adding significant stars' row with existing output in R

我从我的数据中得到了列均值和范围(最小值、最大值)。

df=matrix(c(3, 5, 2, 3, 6, 3,4, 4, 4, 5, 4, 3,5, 5, 5),ncol=3,byrow=TRUE)
colnames(df)<-paste0("ch", 1:ncol(df))
rownames(df)<-paste0("G", 1:nrow(df))
mean<- colMeans(df, na.rm = FALSE, dims = 1)
range<-apply(df, 2, range)
rownames(range) <- c("min","max")
res<-rbind(mean,range)

我有一个标准平均值(4)。现在我想在现有输出中添加显示显着标记 (**) 的附加行。小于 4 的平均值被认为是显着的。不知何故,我得到了显着的分数,但我未能将其添加到现有结果中。

 f<-res[1,] <4
test <- factor(f, labels=c("Ns", "**"))
result<-rbind(mean,range,test)
result
     ch1 ch2 ch3
mean   4 4.8 3.4
min    3 4.0 2.0
max    5 6.0 5.0
test   1 1.0 2.0

我想要这个就像关注一个

     ch1 ch2 ch3
mean   4 4.8 3.4
min    3 4.0 2.0
max    5 6.0 5.0
test   Ns Ns **

我需要你的帮助来解决这个问题。

我认为,Matrix只能存储相同类型的数据。在这里,前三行是数字。但是,testfactor,它被强制转换为数字,即 Ns** 映射到 12。 我建议你应该使用 data.frame 来做。

res<-rbind(mean,range)
res<-data.frame(t(res))
f<-res[1,] <4
test <- factor(f, labels=c("Ns", "**"))
res<-cbind(res,test)

希望这个回答能帮到你!

rbind.data.frame(mean = mean, range, test = as.character(test))

#       ch1 ch2 ch3
# mean   4 4.8 3.4
# min    3   4   2
# max    5   6   5
# test  Ns  Ns  **

有关详细信息,请参阅 ?rbind.data.frame