我有调查数据的数据框,我想从中获取相对频率。
我从文件中创建了一个独特的属名称向量:
> CoralGenera <- unique(dfrm$V5)
然后对于向量中的每个元素(Genus)(CoralGenera),我想运行这个函数:
> mean(dfrm$V5 == "Genus")
但它将每个字符串保存为向量中的一个元素,以便在阻碍我的函数中使用。
我试过了:
> for (Genus in CoralGenera){
CGrfreq <- c(CGrfreq,mean(dfrm$Genus == Genus))}
哪个跑了,但返回了一个包含比CoralGenera更多元素的向量
我一直在尝试使用lapply()来避免复制,但无法让它工作:
> lapply(seq_along(CoralGenera), mean(dfrm$Genus == Genus))
> lapply(Genus(CoralGenera), mean(dfrm$Genus == "Genus"))
> lapply(CoralGenera, mean(dfrm$Genus == x))
> lapply(CoralGenera, mean(dfrm$Genus == CoralGenera[v]))
每次返回如下错误消息: match.fun(FUN)出错: 'mean(dfrm $ Genus == Genus)'不是函数,字符或符号
这是我第一次在R中编写这样的代码,所以非常感谢任何帮助。
答案 0 :(得分:0)
目前尚不清楚你想要的意思。尝试以下方法之一:
sapply(CoralGenera, function(genus) mean(dfrm$Genus[dfrm$V5 == genus]))
sapply(CoralGenera, function(genus) mean(dfrm$V5[dfrm$V5 == genus]))