大家好,我对编程很新,我想知道是否有人可以帮助我。我只是在玩r并希望创建一个函数,它返回一个数据集中每列的均值的向量,用户将作为参数放入。问题是我试图在没有应用函数的情况下这样做,所以我只是手动尝试它并感觉我非常接近完成它。只是想问一下是否有人可以查看它以查看我在哪里犯了错误。 这是我的代码:
findMeans<- function(data)
{
meanVec <- numeric()
for(i in 1:6)
{
mean=0
for( j in 1:153)
{
value=0
count=0
if(is.na(data[j,i])==FALSE)
{
value= value + data[i,j]
count=count+1
}
else
{
value= value +0
}
}
mean =value/count
meanVec[i]<-mean
}
meanVec
}
当我尝试列出矢量时,它只是给出了这个
> meanVec
numeric(0)
是否有人可能会对我做错了什么有所了解?
答案 0 :(得分:0)
如果您正在寻找函数编写实践,并且已经知道colMeans
函数,那么我发现了一些错误。
1)我假设当你从1:6开始,你要经历数据框中的每一列,而1:153,你将经历每一行。如果这是准确的,那么value=0
和count = 0
语句应该在mean = 0
旁边向上移动一级。否则,您将每行重置为零,除了报告它遇到的最后一个值之外,它不会执行任何操作。
2)在value= value + data[i,j]
行中,您需要data[j,i]
。您反转了行和列值。
通过这两项更改,您的函数似乎适用于包含6列和153行的数据集。对于更多练习,我建议尝试找到一种方法来为任意数量的列和行推广函数。