在R语言中为数据框fimopositive计算V2与V3平均值并生成新列V5
调整代码存入V5列并简化实现
没问题,你只需要做一个小改动就能把V2和V3的平均值存入V5列,另外其实R里有更简洁的写法,不用手动写循环函数哦:
方法一:修改你现有代码
你当前的代码只是把结果赋值给了V6,只需要把赋值目标改成V5就可以了:
med<-function(starts,ends) { m<-vector(mode="numeric",length=0) for(i in 1:length(starts)) { m[i]<-((starts[i]+ends[i])/2) } return (m) } fimopositive$V5<-med(fimopositive$V2,fimopositive$V3)
方法二:更简洁的向量化写法(推荐)
R是天生支持向量化运算的语言,不需要写循环来逐行计算,直接对整列进行操作就行,代码更简洁高效:
# 直接计算两列的平均值并赋值给V5 fimopositive$V5 <- (fimopositive$V2 + fimopositive$V3) / 2
这个写法和你原来的函数功能完全一致,但运行速度更快,代码可读性也更高,尤其当你的数据框行数很多的时候,优势会更明显。
内容的提问来源于stack exchange,提问作者Swati Jain
相关产品推荐
相关产品推荐

