根据选择字符拆分列

根据选择字符拆分列

我有一个包含许多列的数据框。对于其中一列('cols'),它大致具有以下结构:

'x\y\z'

一些行是“x\y\z”,其他行是“x\y”。我只对行的“y”部分感兴趣。

我一直在浏览有类似问题的人在 stackoverflow 上的各种帖子,但我一直找不到有效的解决方案。我得到的最接近的是这个(导致错误):
x = strsplit(df['cols'], "\")
我有一种感觉,我可能没有正确使用软件包。任何帮助都会很棒!

编辑:包括样本结构和预期输出

当前结构:

     cols
'test\foo\bar'
'test\foo'
'test\bar'
'test\foo\foo'

预期输出:
 cols
'foo'
'foo'
'bar'
'foo'

最佳答案

我们需要逃离

df$cols <- sapply(strsplit(df$cols, "\\\\"), `[`, 2)
df$cols
#[1] "foo" "foo" "bar" "foo"

或者使用 sub
sub("^\\w+.(\\w+).*", "\\1", df$cols)
#[1] "foo" "foo" "bar" "foo"

数据
df <- structure(list(cols = c("test\\foo\\bar", "test\\foo", "test\\bar",
"test\\foo\\foo")), .Names = "cols", class = "data.frame", row.names = c(NA,
-4L))

关于r - 根据选择字符拆分列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50911658/

10-12 14:04