这是关于申请的使用的问题。这种性质的问题得到了回答,这纯属巧合。我不是在寻找最简单的方法(这会使它重复)。我写了一些可以使用循环解决的随机内容。我正在寻找如何使用apply编写我的问题。
在R中,我很难摆脱总是使用循环的习惯。这是我写的基本示例脚本。它接收数据并说明表格中每个唯一数字的频率。如果可能的话,我如何通过申请完成同样的事情?
x <- c(1,3,4,7,8,10,1,2,3,4,4,6,7,8,8,1,2,3,7,8)
y <- data.frame(x)
z <- data.frame(unique(y)) #finds unique values
i <- nrow(z) #nrow for loop length
id <- 1:i
repped <- data.frame()
for (i in id){
zz <- y[which(y[,1] == z[i,]),] #takes each value from z and finds rows with identical values
value <- length(zz)
repped <- rbind(repped, value)
}
yy <- data.frame(z, repped)
colnames(yy) <- c("number", "frequency")
答案 0 :(得分:2)
我们可以使用table
来获取&#39; y&#39;并用data.frame
as.data.frame(table(y))
如果我们需要apply
家庭功能
data.frame(z=unique(y$x),repped= sapply(unique(y$x),
function(i) sum(y$x==i)))