为什么这不起作用?
data1<-data.frame(x=1:5,y=2:6)
onevector<-c(1,2)
lapply(1:length(onevector),function(i) {data1[,i]<-data1[,i]-onevector[i]})data1保持不变...
我尝试为dataset data1的每一列减去一个元素,我想这样做:
data1[,1]<- data1[,1] -1 (which is working out of the lapply)
data1[,2]<- data1[,2] -2我的问题更多的是关于理解lapply和for之间的区别,而不是关于实现这一点的替代方法,所以如果你想回答,请详细说明你的答案。
发布于 2016-02-25 18:29:12
data1<-data.frame(x=1:5,y=2:6)
min<-c(1,2)
s <- sapply(1:length(min),function(x) rep(x,dim(data1)[1]))
data1 <- data1-s这将创建一个新的矩阵s,它由最小向量值的列组成。从data1中减去它将得到结果。
或者使用docendo discimus的解决方案,它要优雅得多:
data1 <- as.data.frame(Map("-", data1, mn))https://stackoverflow.com/questions/35624432
复制相似问题