繁体   English   中英

在R中的for循环中串联

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM