【发布时间】:2016-07-24 11:47:00
【问题描述】:
我有一个数据框:
structure(list(City = structure(c(4L, 2L, 1L, 3L, 3L, 3L), .Label = c("Gold Cost",
"Melbourne", "Other", "Sydney"), class = "factor"), Town = structure(c(1L,
1L, 1L, 3L, 4L, 2L), .Label = c("", "Brighton", "Hurstville",
"Penhurst"), class = "factor")), .Names = c("City", "Town"), class = "data.frame", row.names = c(NA,
-6L))
我想替换名为 City 的列中包含名为 Other 的值的所有行,并将其替换为同一行的下一列中的值。
我的输出应该是这样的:
structure(list(City = structure(c(6L, 4L, 2L, 3L, 5L, 1L), .Label = c("Brighton",
"Gold Cost", "Hurstville", "Melbourne", "Penhurst", "Sydney"), class = "factor"),
Town = structure(c(1L, 1L, 1L, 3L, 4L, 2L), .Label = c("",
"Brighton", "Hurstville", "Penhurst"), class = "factor")), .Names = c("City",
"Town"), class = "data.frame", row.names = c(NA, -6L))
我之前没有写过任何函数,但我猜它应该是这样的:
for(data1 in 1:nrow(data1)) {
if(data1$City[i] == 'Other') {
data1$city[i] <- data1$Town[i]
} else {
break
}
}
- 我哪里出错了?
- 未来解决此类问题的思考过程应该是什么?
- 我怎样才能得到想要的结果?
【问题讨论】:
标签: r