我对这个问题有一个非常类似的问题,但我的情况比较复杂.
这是我的示例代码:
test = data.frame(x = c(1:4),
y = c("/abc/werts/h1-1234", "/abc/fghye/seths/h2-234",
"/abc/gvawrttd/hyeadar/h3-9868", "/abc/qqras/x1-7653"))
test$y = as.character(test$y)
Run Code Online (Sandbox Code Playgroud)
我想要一个像这样的输出:
1 h1-1234
2 h2-234
3 h3-9868
4 x1-7653
Run Code Online (Sandbox Code Playgroud)
我试过了:
test$y = tail(unlist(strsplit(test$y, "/")), 1)
Run Code Online (Sandbox Code Playgroud)
但是,返回上述代码的结果:
1 h1-1234
2 h1-1234
3 h1-1234
4 h1-1234
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何修改我的代码以便我可以得到我想要的输出?
提前致谢!
这是您要寻找的线路:
test$y = sapply(strsplit(test$y, "/"), tail, 1)
Run Code Online (Sandbox Code Playgroud)
它适用tail于返回的列表中的每个元素strsplit.