全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
14868 4
2013-08-22
有一个问题,现在我的dataframe(名字叫做m)里面有7个variable,每个variable有142个observations。每个variable作为一列,名字分别就是1,2,3,4,5,6,7。现在我想要用3,4,5,6,7这5个coln去减去2这个coln,并且希望是用一个loop或者更加自动化一点的code来做,不用一个个手写出来的。
我用的code是
for ( i in 3:7)
{
  m$i<-m$i -m$“2”
}
但是系统给了我这么一个错误:
Error in `$<-.data.frame`(`*tmp*`, "i", value = numeric(0)) :   replacement has 0 rows, data has 142 正确的操作code应该是什么呢? 在线等!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-8-22 18:37:17
没看懂,m[,3:7]-m[,2]?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-2 14:36:41
这个之前有人碰到过,就是没找到变量名
你看上下变量名是不是一致啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-11-3 19:44:41
你这个问题解决了吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-7-8 17:22:39
我理解这个是R语言的赋值机制问题,当数据框要产生新变量,新变量又是用循环一个一个赋值的时候,会用”广播“的方式赋值,因为142不是3的倍数,所以报错了。昨天我也遇到这个问题了,生成一个行列数量都对的空数据框,然后再用循环的方式赋值就不会报错。
kongdataframe <- data.frame(matrix(NA, 行数, 列数))
colnames(kongdataframe) <- 命名序列
就可以用循环赋值了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群