【发布时间】:2020-03-28 03:34:19
【问题描述】:
假设我有以下data.frame:
df <- data.frame(string=c("word1 word2 word3 word4", "word1 word2", "word1"), stringsAsFactors = FALSE)
我想在一个列表(或每行)中导出第一个/最后 n 个单词(n 从 1 到单词数)的串联。预期结果:
list(
string1=c('left1'="word1", 'left2'= "word1 word2", 'left3'="word1 word2 word3",
'left4'="word1 word2 word3 word4",
'right1'="word4", 'right2'="word3 word4", 'right3'="word2 word3 word4"),
string2= c('left1'="word1", 'left2'="word1 word2", 'right1'="word2"),
string3="word1")
(根本不需要但便于理解的元素名称)。
不想要:粘贴中间元素,例如“word2 word3”。
我目前使用strsplit(df$string) 准备所需列表的第一步,然后可以通过双循环实现我想要的,但这远非高效。
基本 R / data.table 中首选的方法,但 tidyverse 有效的解决方案会很好。
【问题讨论】:
-
你需要左边的 i 是 1 到 n 和右边的 i 是 1 到 n-1?
-
从 1 到 n 的所有 lefti i 都正确;右 i: n-1 到 n
标签: r string data.table combinations word