RegEx 和 stringr 包
RegEx and stringr package
我是一个 R 新手,我的编程作业遇到了麻烦。
输入的是一首诗:
poem <- c(
"Am Tag, an dem das L verschwand,",
"da war die Luft voll Klagen.",
"Den Dichtern, ach, verschlug es glatt",
"ihr Singen und ihr Sagen.",
"Nun gut. Sie haben sich gefasst.",
"Man sieht sie wieder schreiben.",
"Jedoch:",
"Solang das L nicht wiederkehrt,",
"muß alles Flickwerk beiben.")
现在我需要提取所有大写字母并将它们组合成一个单词。
我正在使用以下代码执行此操作:
poem_cap <- str_extract_all(poem, "[[:upper:]]")
然后我取消列出 poem_cap
:
one_word <- unlist(poem_cap)
one_word
下一个合乎逻辑的步骤是应用 str_c
:
one_word2 <- str_c(one_word, sep="")
但是R一直在放单独的字母!
如果我复制 one_word2
的输出,用逗号分隔它并将 str_c
应用于输出,它有效:
one_word2 <- str_c("A", "T", "L", "L", "K", "D", "D", "S", "S", "N", "S", "M", "J", "S", "L", "F", sep="")
one_word
为什么会这样?我犯错了吗?我如何将 one_word2
转换成我可以使用的 str_c
?
Base R
方法,您可以简单地在一行中使用 gsub
以仅保留大写字母并粘贴它们(折叠,如@David Arenburg 下划线所示):
paste(gsub('[^A-Z]','',poem), collapse='')
#[1] "ATLLKDDSSNSMJSLF"
我是一个 R 新手,我的编程作业遇到了麻烦。
输入的是一首诗:
poem <- c(
"Am Tag, an dem das L verschwand,",
"da war die Luft voll Klagen.",
"Den Dichtern, ach, verschlug es glatt",
"ihr Singen und ihr Sagen.",
"Nun gut. Sie haben sich gefasst.",
"Man sieht sie wieder schreiben.",
"Jedoch:",
"Solang das L nicht wiederkehrt,",
"muß alles Flickwerk beiben.")
现在我需要提取所有大写字母并将它们组合成一个单词。 我正在使用以下代码执行此操作:
poem_cap <- str_extract_all(poem, "[[:upper:]]")
然后我取消列出 poem_cap
:
one_word <- unlist(poem_cap)
one_word
下一个合乎逻辑的步骤是应用 str_c
:
one_word2 <- str_c(one_word, sep="")
但是R一直在放单独的字母!
如果我复制 one_word2
的输出,用逗号分隔它并将 str_c
应用于输出,它有效:
one_word2 <- str_c("A", "T", "L", "L", "K", "D", "D", "S", "S", "N", "S", "M", "J", "S", "L", "F", sep="")
one_word
为什么会这样?我犯错了吗?我如何将 one_word2
转换成我可以使用的 str_c
?
Base R
方法,您可以简单地在一行中使用 gsub
以仅保留大写字母并粘贴它们(折叠,如@David Arenburg 下划线所示):
paste(gsub('[^A-Z]','',poem), collapse='')
#[1] "ATLLKDDSSNSMJSLF"