【发布时间】:2014-08-28 09:54:46
【问题描述】:
我是 R 新手,对它在快速处理数据和返回可读信息方面的强大功能感到震惊。不过,现在我被困住了。
我有一个已作为数据框导入的大型数据集。我想使用正则表达式(grepl?)搜索数据框的特定列,并将搜索结果放入新列中。我认为我可以使用 apply 或 ddply 来做到这一点,但我似乎无法很好地围绕这些功能来做到这一点。
这是一个示例数据框...
df <- structure(list(w = structure(c(3L, 2L, 1L, 3L, 3L), .Label = c("b",
"c", "d"), class = "factor"), x = structure(c(1L, 2L, 1L, 2L,
3L), .Label = c("a", "b", "d"), class = "factor"), y = structure(c(2L,
1L, 1L, 1L, 1L), .Label = c("a", "d"), class = "factor")), .Names = c("w",
"x", "y"), row.names = c(NA, -5L), class = "data.frame")
返回...
w x y
1 d a d
2 c b a
3 b a a
4 d b a
5 d d a
我试过:search <- apply(df, 2, function(x){grepl("d", x, perl=TRUE)})(除其他外),它返回:
w x y
[1,] TRUE FALSE TRUE
[2,] FALSE FALSE FALSE
[3,] FALSE FALSE FALSE
[4,] TRUE FALSE FALSE
[5,] TRUE TRUE FALSE
我想要的结果是......
w x y z
1 d a d TRUE
2 c b a FALSE
3 b a a FALSE
4 d b a TRUE
5 d d a TRUE
我意识到这对你们这些高级的人来说似乎很微不足道。提前感谢您花时间帮助我学习。此外,虽然我正在寻找这个特定问题的答案,但我很想听听有关学习/阅读的建议,这将有助于我更好地掌握这种类型的数据操作。
【问题讨论】: