楼主: Wayne_Liu
1133 2

[实际应用] 帮忙看下这个数据重编码的写法的问题 [推广有奖]

  • 0关注
  • 0粉丝

高中生

7%

还不是VIP/贵宾

-

威望
0
论坛币
-1 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
333 点
帖子
15
精华
0
在线时间
21 小时
注册时间
2017-12-11
最后登录
2018-3-9

楼主
Wayne_Liu 发表于 2017-12-31 20:45:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
现有一个date.frame名为dataset, 其中有两个因子A和B, 取值均为“No"或者"Yes", 现在要根据A和B计算一个新的变量C, 要求为当A和B都是“No"的时候,C取值为“No”, 当A和B中任一个为“Yes”的时候,C取值为“Yes”, 我一开始写的代码如下:

dateset <- within(dataset, {
    C <- "No"
    C [A == "Yes" | B == "Yes"] <- "Yes"
})

结果出来C会有很多取值变为NA

而以下这种写法就没有问题:

dateset <- within(dateset, {
  C <- NA
  C [A == "Yes" | B == "Yes"] <- "Yes"
  C [A == "No" & B == "No"] <- "No"
})


请问前面一种写法错在哪里?
二维码

扫码加我 拉你入群

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

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

关键词:dataset Dates DataS Frame date

回帖推荐

jinkelazzz 发表于2楼  查看完整内容

第一种C的长度只有1是不是?后面没有判断AB为NO的就没有赋值。

沙发
jinkelazzz 发表于 2018-1-2 10:36:02
第一种C的长度只有1是不是?后面没有判断AB为NO的就没有赋值。

藤椅
Wayne_Liu 发表于 2018-1-2 10:45:53
jinkelazzz 发表于 2018-1-2 10:36
第一种C的长度只有1是不是?后面没有判断AB为NO的就没有赋值。
好的,应该是这样,谢谢!

我一开始以为在within data.frame里面新建vector并赋一个具体值这个vector长度就会默认跟其他不缺失的长度一样。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 06:03