【发布时间】:2014-12-05 06:24:02
【问题描述】:
我有一个数据框,其中的数据组织如下:
data <- structure(list(group = c("a", "a", "b", "b"), yr1 = c(1927L, 1953L, 1957L, 1961L), yr2 = c(1934L, 1955L, 1958L, 1965L), val = c("1", "1", "1", "NA"), col2 = c("x", " -x", " ", " x ")), .Names = c("group", "yr1", "yr2", "val", "col2"), class = "data.frame", row.names = c(NA, -4L))
group yr1 yr2 val col2
1 a 1927 1934 1 x
2 a 1953 1955 1 -x
3 b 1957 1958 1
4 b 1961 1965 NA x
我想做的是检查val 列,如果col2 列中的某个字符串为真(在本例中为x),则将其替换为值1。
我可能会总结出其他条件字符串。
values <- c("x", "test", "nts", "kfc")
我针对的示例数据的结果如下所示:
group yr1 yr2 val col2
1 a 1927 1934 1 x
2 a 1953 1955 1 -x
3 b 1957 1958 1
4 b 1961 1965 1 x
我曾尝试用这样的子集来做到这一点,但失败了。
data[data$col2 == "x", ][, "val"] <- "1"
有人知道如何解决这个问题吗?
【问题讨论】:
-
你的
NA只是"NA"