我们做了一项调查,其中60名学生必须投票他们最喜欢的想法。你可以选择三个想法。最好的想法得到3分,接下来的2分和第三个最好的想法获得1分。第2至10列对应于这些想法。
因此,为了检查每个人是否正确地进行了调查,我使用了命令
rowSums(x[,2:10], na.rm=T)
这很有效。
但接下来我想用以下命令检查每一行的范围:
rowRanges(x, rows = NULL, cols=NULL, na.rm=T, dim.=dim(x[,2:10])
但这是一个错误。你能救我吗?
答案 0 :(得分:1)
以下是在apply
数据上使用mtcars
的示例。
df = mtcars
df$cars = rownames(df)
df = df[,c(12,1:10)]
rownames(df) = NULL
df$sums = apply(df[,2:10], 1, function(x) sum(x, na.rm = TRUE))
df$range = apply(df[,2:10], 1, function(x)
paste(max(x,na.rm = TRUE)," - ",min(x, na.rm = TRUE),sep = ""))
答案 1 :(得分:1)
加载库matrixStats
library(matrixStats)
首先创建一个15行和15列的虚拟矩阵,其中包含1-3之间的随机数。
m1<-matrix(sample(3, 225, replace=TRUE), nrow=15)
然后使用函数rowRanges
rowRanges(m1[,2:10])