首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lapply进行赋值?

使用lapply进行赋值?
EN

Stack Overflow用户
提问于 2016-02-25 18:19:08
回答 1查看 1.4K关注 0票数 0

为什么这不起作用?

代码语言:javascript
复制
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的每一列减去一个元素,我想这样做:

代码语言:javascript
复制
data1[,1]<- data1[,1] -1 (which is working out of the lapply)
data1[,2]<- data1[,2] -2

我的问题更多的是关于理解lapply和for之间的区别,而不是关于实现这一点的替代方法,所以如果你想回答,请详细说明你的答案。

EN

回答 1

Stack Overflow用户

发布于 2016-02-25 18:29:12

代码语言:javascript
复制
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的解决方案,它要优雅得多:

代码语言:javascript
复制
data1 <- as.data.frame(Map("-", data1, mn))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35624432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档