在R

时间:2018-02-02 06:07:53

标签: r dataframe

我正在尝试将新变量添加到我通过读取数据集创建的现有数据框中。可以找到数据集here,但它采用csv格式。

titanic = data.frame()
titanic = read.table("Titanic.txt", header = FALSE, as.is = TRUE)

我想添加一个名为x的新变量,它从该数据框的V2列读取。如果V2的值为1,则x中的等值应为"生存"。如果它是0,则x给出" Died"。

我决定构造一个使用if语句的简单for循环:

for(i in titanic$V2){
  if(i == "1"){
    a<- c(a,"Survived")
  }
  if(i == "0"){
    a <- c(a, "Died")
  }
}

但是,我不断收到错误消息,说明&#34;替换有xxx行,数据有yyy行。而且似乎每次运行程序时,我的变量a都会根据上次运行的结果进行连接。

我不确定为什么在重新运行程序后没有清除变量a,以及为什么我输出的数据与我从中得到的数据不同。

1 个答案:

答案 0 :(得分:0)

在这里使用var currentTime = '2/2/2018, 11:34:53 AM'; var loggedTime = '2/2/2018, 11:14:46 AM';

ifelse

这应该有效,因为如果titanic$status <- ifelse(titanic$V2, "Survived", "Died") 为1,那么它应该表现为真,0表现为假。

作为旁注,以下代码确实对我有用:

V2

但我会使用a <- character() for (i in titanic$V2) { if (i == "1") { a <- c(a,"Survived") } if (i == "0") { a <- c(a, "Died") } } titanic$status <- a ,因为它是矢量化的。