我正在尝试将新变量添加到我通过读取数据集创建的现有数据框中。可以找到数据集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
,以及为什么我输出的数据与我从中得到的数据不同。
答案 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
,因为它是矢量化的。