全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
21953 2
2016-02-23
矩阵Dat如下(实际行数和列数很多,100万*20)
ID01 ID02 ID03 ID04 ID05
[1,] 1 9423 1949 0 110
[2,] 1 9720 2000 0 190
[3,] 1 8920 1996 0 110
[4,] 1 8022 1992 0 113
[5,] 1 9110 1963 0 110

问题1:根据ID05的值来给ID04列赋值,只要ID05的值等于190或113就给ID04赋值1,否则赋值为0.
使用下面代码很容易实现:
Dat$ID04 = 0Dat$ID04[which(Dat$ID05 == 190 | Dat$ID05 == 113)] = 1
但问题是:
问题2:根据ID05的值来给ID04列赋值,只要ID05的值等于190就给ID04赋值为ID03/ID02,否则赋值为0.
Dat$ID04[which(Dat$ID05 == 190 | Dat$ID05 == 113)] = Dat$ID03/ID02
此时使用上面语句就有警告,有时无法使用全部操作。

什么原因?如何解决?不使用循环。




二维码

扫码加我 拉你入群

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

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

全部回复
2016-2-23 08:43:25
复制代码

二维码

扫码加我 拉你入群

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

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

2016-2-23 09:59:11
dat$ID04<-ifelse(dat$ID05==190|dat$ID05==113,1,0),返回值可以换成公式或者条件,你可以试试
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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