这
必须是一项非常简单的任务(是的,这可能会被标记为重复项(,但我在任何地方都找不到如何在数据帧中简单地执行此操作而无需从列创建列表并将它们放回去。可重现的代码如下:
我只想分隔 df 列中的最后一个元素,用逗号分隔:
df<- c("Lagos, Nigeria", "United States", "Buckingham Palace, Great Britain",
"Madison Square Garden, NY, New York, USA")
df <- data.frame(df, c(1:length(df)), stringsAsFactors = FALSE)
df$column.desired <- c("Nigeria", "United States", "Great Britain",
"USA")
我们可以使用 sub
来匹配字符 ( .*
(,直到逗,
号后跟零个或多个空格 (\s*
(,后跟一个或多个不是,
的字符 ( [^,]+
( 直到字符串的末尾 ( $
(,捕获为一个组 ( (...)
( 并替换为捕获组的反向引用 ( \1
(
df$column.desired <-sub(".*,\s*([^,]+)$", "\1", df$df)
df$column.desired
#[1] "Nigeria" "United States" "Great Britain" "USA"