[英]Concatenating in a for loop in R
我试图将新变量添加到通过读取数据集创建的现有数据框中。 数据集可以在此处找到,但格式为csv。
titanic = data.frame()
titanic = read.table("Titanic.txt", header = FALSE, as.is = TRUE)
我想添加一个名为x的mew变量,该变量从该数据帧的V2
列读取。 如果V2
值为1,则x中的等效值应为“生存”。 如果为0,则x表示“死亡”。
我决定构造一个使用if语句的简单for循环:
for(i in titanic$V2){
if(i == "1"){
a<- c(a,"Survived")
}
if(i == "0"){
a <- c(a, "Died")
}
}
但是,我不断收到错误消息,说“替换有xxx行,数据有yyy行。而且似乎每次运行程序时,变量a都是根据上次运行的结果进行连接的。
我不确定为什么在重新运行程序后没有清除变量a
,以及为什么我输出的数据与我从中获取的数据不同。
只需在此处使用ifelse
:
titanic$status <- ifelse(titanic$V2, "Survived", "Died")
这应该起作用,因为如果V2
为1,则其行为应为true,而行为为0则为false。
作为附带说明,以下代码实际上对我有用:
a <- character()
for (i in titanic$V2) {
if (i == "1") {
a <- c(a,"Survived")
}
if (i == "0") {
a <- c(a, "Died")
}
}
titanic$status <- a
但是我会使用ifelse
,因为它是矢量化的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.