Добавление ряда значимых звезд с существующим выводом в R - PullRequest
1 голос
/ 26 октября 2019

Я получил среднее значение столбца и диапазон (мин., Макс.) Из моих данных.

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 **

Мне нужна ваша помощь, чтобы решить эту проблему.

Ответы [ 2 ]

2 голосов
/ 26 октября 2019
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.

1 голос
/ 26 октября 2019

Я думаю, Matrix может хранить только данные одного типа. Здесь первые три строки являются числовыми. Тем не менее, test равен factor, и он приводится к числовому значению, которое Ns и ** отображается на 1 и 2. Я предлагаю вам использовать 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)

Я надеюсь, что этот ответ может помочь вам!

...