估计R中每一行的范围

时间:2017-01-29 19:30:38

标签: r range

我们做了一项调查,其中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])

但这是一个错误。你能救我吗?

2 个答案:

答案 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])