我是一个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?
发布于 2015-05-20 08:51:53
基本R方法,您只需在一行中使用gsub只保留大写字母并粘贴它们(如@David Arenburg下划线所示):
paste(gsub('[^A-Z]','',poem), collapse='')
#[1] "ATLLKDDSSNSMJSLF"https://stackoverflow.com/questions/30344358
复制相似问题