gpt4 book ai didi

r - 按字符分隔字段中的变量

转载 作者:行者123 更新时间:2023-12-01 13:17:36 27 4
gpt4 key购买 nike

我最近问了这个问题 Separate contents of field并得到了一个非常快速和非常简单的答案。

我可以在 Excel 中简单地做的事情是查看一个单元格,找到一个字符的第一个实例,然后返回该字符左侧的所有字符。

例如

Author

Drijgers RL, Verhey FR, Leentjens AF, Kahler S, Aalten P.

我可以将 Drijgers RL 和 Aalten P 提取到 Excel 中单独的列中。这让我可以计算某人是第一作者和最后作者的次数。

我如何在 R 中复制它?我可以从上面的不同行答案中计算出作者发表文章的总次数。

我如何将第一位和最后一位作者拆分成单独的列。知道这可能会有用。在这个答案中 Splitting column by separator from right to left in R

列数已知。怎么说“以逗号分隔此字符串,并根据原始字段右侧作者列表中的姓名数将它们放入未知数量的列中”?

最佳答案

试试这个函数:

extract_authors <- function(df, authors) {

df[["FirstAuthor"]] <- ifelse(
grepl(",", df[[authors]]), trimws(gsub(",.*", "", df[[authors]])), df[[authors]]
)


df[["LastAuthor"]] <- ifelse(
grepl(",", df[[authors]]), trimws(gsub(".*,", "", df[[authors]])), "No last author"
)

return(df)

}

与本主题中的其他示例一起使用:

data.frame(
authors = c(
"Drijgers RL, Verhey FR, Leentjens AF, Kahler S, Aalten P.",
"Drijgers RL, Verhey FR, Leentjens AF, Kahler S",
"Drijgers RL, Verhey FR, Leentjens AF",
"Drijgers RL, Verhey FR",
"Drijgers RL"
),
stringsAsFactors = FALSE
) -> sample_df

你可以这样调用它:

extract_authors(df, "authors")

在输出中,您会得到 2 个新列,FirstAuthorLastAuthor:

                                                    authors FirstAuthor     LastAuthor
1 Drijgers RL, Verhey FR, Leentjens AF, Kahler S, Aalten P. Drijgers RL Aalten P.
2 Drijgers RL, Verhey FR, Leentjens AF, Kahler S Drijgers RL Kahler S
3 Drijgers RL, Verhey FR, Leentjens AF Drijgers RL Leentjens AF
4 Drijgers RL, Verhey FR Drijgers RL Verhey FR
5 Drijgers RL Drijgers RL No last author

关于r - 按字符分隔字段中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53318374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com