这不起作用,我不确定原因。
look_up <- data.frame(flat=c("160","130"),
street=c("stamford%20street", "doddington%20grove"),
city = c("London", "London"),
postcode = c("SE1%20", "se17%20"))
new <- data.frame()
for(i in 1:nrow(look_up)){
new <- rbind(new,look_up$flat[i])
}
感谢有人能告诉我为什么请!我的结果应该是一个数据框,其中一列称为“flat”,每行的值为160和130。一旦我理解了这一点,我就可以进入我想要做的真实事情了!
答案 0 :(得分:3)
不需要循环:
look_up[,"flat",drop=FALSE]
如上所述,循环问题是自动转换为因子。您可以将options(stringsAsFactors=FALSE)
放在脚本前面以避免这种情况。
然而,几乎可以肯定的是,你正以错误的方式接近你的实际问题。您应该问一个新问题,在那里您告诉我们您实际想要实现的目标。
答案 1 :(得分:0)
您需要查看data.frame
的stringsAsFactors
参数。
look_up <- data.frame(flat=c("160","130"),
street=c("stamford%20street", "doddington%20grove"),
city = c("London", "London"),
postcode = c("SE1%20", "se17%20"),
stringsAsFactors = FALSE)
look_up[, "flat", drop = FALSE ]
答案 2 :(得分:0)
您还可以执行以下操作:
> look_up <- data.frame(flat=c("160","130"),
+ street=c("stamford%20street", "doddington%20grove"),
+ city = c("London", "London"),
+ postcode = c("SE1%20", "se17%20"))
>
> new <- look_up[,1,drop=FALSE]
> new
flat
1 160
2 130
> class(new)
[1] "data.frame"
这表明您的最终所需输出是列数为160和130的数据帧。
如果您不在此处添加drop=FALSE
,那么您的最终输出将是一个因素。
希望这会有所帮助。