数据框中带“的使用条件”;加上;R中的函数

数据框中带“的使用条件”;加上;R中的函数,r,with-statement,R,With Statement,我的数据如下所示: manager date country gender age q1 q2 q3 q4 q5 agecat 1 1 10/24/08 US M NA 5 4 5 5 5 NA 2 2 10.28/08 US F 45 3 5 2 5 5 NA 3 3 10/1/08 UK F NA 3 5 5 5 2 NA 4 4

我的数据如下所示:

 manager     date country gender age q1 q2 q3 q4 q5 agecat
1       1 10/24/08      US      M  NA  5  4  5  5  5  NA
2       2 10.28/08      US      F  45  3  5  2  5  5  NA
3       3  10/1/08      UK      F  NA  3  5  5  5  2  NA
4       4 10/12/08      UK      M  39  3  3  4 NA NA  NA
5       5   5/1/09      UK      F  99  2  2  1  2  1  NA
现在,如果年龄>55岁,我尝试设置agecat=“Elder”。我尝试了以下两组代码,得到了不同的结果:

代码1(已工作)


leadership$agecat[leadership$age>55]首先,你的
带有
表情

                 { 
    agecat[age > 55] <- "Elder"
}
在我看来,这不是一个精简的
调用,你可以用

leadership$agecat <- with(leadership, replace(agecat, age > 55, "Elder"))
正如@BenBolker所指出的,
transform
是另一种选择。这也会返回完整的更新数据,与
中的
相同

leadership <- transform(leadership,agecat = replace(agecat, age > 55, "Elder"))
leadership 55,“长者”))

长话短说,最好还是坚持使用代码1。首先,使用表达式

                 { 
    agecat[age > 55] <- "Elder"
}
在我看来,这不是一个精简的
调用,你可以用

leadership$agecat <- with(leadership, replace(agecat, age > 55, "Elder"))
正如@BenBolker所指出的,
transform
是另一种选择。这也会返回完整的更新数据,与
中的
相同

leadership <- transform(leadership,agecat = replace(agecat, age > 55, "Elder"))
leadership 55,“长者”))

长话短说,最好还是坚持使用代码1代码。

with为数据框创建一个环境,这样您就不需要重新键入数据框名称来访问其中的变量。在您的例子中,您创建了一个变量,但当您退出环境时它消失了。因此,正如脏袜子嗅探器所说,在
中使用
,它也会创建一个环境,但会返回数据帧。因此,以下工作:

leadership <- within(leadership, agecat[age > 55] <- "Elder")

leadership 55]
with
为数据框创建一个环境,这样您就不需要重新键入数据框名称来访问其中的变量。在您的例子中,您创建了一个变量,但当您退出环境时它消失了。因此,正如脏袜子嗅探器所说,在
中使用
,它也会创建一个环境,但会返回数据帧。因此,以下工作:

leadership <- within(leadership, agecat[age > 55] <- "Elder")

leadership 55]如果要对连续变量进行分类,还可以查看
cut()
函数。。。。当使用
内的
将结果分配回
领导层时,不要忘记。。。或者尝试
transform
…如果要对连续变量进行分类,还可以查看
cut()
函数。。。。当使用
内的
将结果分配回
领导层时,不要忘记。。。或者尝试变换
<代码>领导力55,“长者”)
欣赏提供的不同选项。一切顺利。这是很大的帮助,谢谢大家的回答<代码>领导力55,“长者”)
欣赏提供的不同选项。一切顺利。这是很大的帮助,谢谢大家的回答!!