我只是一个本科生,我为这个愚蠢的问题表示歉意,但是我真的无法继续复制在互联网上找到的文章。该代码在Stata中可用,但在R中不可用。
这里是Stata代码,每行都是第三个变量满足我的条件,所以我要创建的行仅导入第二个变量的值。
gen child_care_basic = tuactdur24 if
(tutier1code==3 & tutier2code ==1 & tutier3code==1) |
[...]
我在R中尝试过的是:
timeuse_2003$CHILD_CARE_BASIC <- NA
timeuse_2003$CHILD_CARE_BASIC[(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==1) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==1) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==8) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==9) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==11) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==12) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==99) |
(timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==3) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==1) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==8) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==9) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==1 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==4 & timeuse_2003$TUTIER2CODE==3 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==17 & timeuse_2003$TUTIER2CODE==3 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==17 & timeuse_2003$TUTIER2CODE==4 & timeuse_2003$TUTIER3CODE==10) |
(timeuse_2003$TUTIER1CODE==17 & timeuse_2003$TUTIER2CODE==4 & timeuse_2003$TUTIER3CODE==1)
]<- timeuse_2003$TUACTDUR24
问题是,我在整个专栏中只得到了NA。
再次,我为这样一个基本的问题表示歉意,但是我尝试了很多不同的方法,但是没有任何效果,所以我决定问你们那些不在初学者面前的人。
谢谢你。
Fabricio
您可以按照以下模式来创建新列,并根据您的业务逻辑来创建值的子集。
timeuse_2003 = data.frame(
TUACTDUR24 = c(10.1, 20.2, 30.3, 40.4, 50.5),
TUTIER1CODE = c(3, 4, 3, 4, 3),
TUTIER2CODE = c(1, 1, 1, 3, 3))
timeuse_2003
TUACTDUR24 TUTIER1CODE TUTIER2CODE
1 10.1 3 1
2 20.2 4 1
3 30.3 3 1
4 40.4 4 3
5 50.5 3 3
selection = timeuse_2003$TUTIER1CODE==3 & timeuse_2003$TUTIER2CODE==1
timeuse_2003$CHILD_CARE_BASIC = NA
timeuse_2003$CHILD_CARE_BASIC[selection] = timeuse_2003$TUACTDUR24[selection]
timeuse_2003
TUACTDUR24 TUTIER1CODE TUTIER2CODE CHILD_CARE_BASIC
1 10.1 3 1 10.1
2 20.2 4 1 NA
3 30.3 3 1 30.3
4 40.4 4 3 NA
5 50.5 3 3 NA