为什么这不起作用?
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保持不变......
我尝试将一个元素减去我的数据集data1的每一列,我想这样做:
data1[,1]<- data1[,1] -1 (which is working out of the lapply)
data1[,2]<- data1[,2] -2
我的问题更多是关于理解lapply之间的区别,而不是另一种方法来实现它,所以如果你想回答,请详细说明你的答案。
答案 0 :(得分:1)
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
这将创建一个新的矩阵,它由你的min矢量值的列组成。从data1中减去这将产生结果。
或者通过docendo discimus使用更优雅的解决方案:
data1 <- as.data.frame(Map("-", data1, mn))