以下是带有两列的标题,第一列具有关键字,第二列具有与关键字相关的字词:
# A tibble: 14 x 2
main_word related
<chr> <chr>
1 car rent car
2 car buy car
3 car mechanic
4 car car rent
5 plane plane ride
6 plane plane ticket
7 plane cheap flights
8 plane book flight
9 plane easyjet
10 plane lufthansa
11 plane british airways
12 plane ryan air
13 plane air france
14 plane fly emirates
我想用关键字和相关关键字创建列表,我已经尝试过使用map和keep函数,但是我得到了一个空列表,我不知道该如何解决它:
a <- c(unique(data$main_word))
words <- map(a,keep(data$related,data$main_word == a))
但是我明白了:
[[1]]
NULL
[[2]]
NULL
答案 0 :(得分:1)
我们可以使用 split ,然后用 mapply 添加( c -concatenate)名称,请参见:
x <- split(data$related, data$main_word)
myList <- mapply(c, names(x), x)
myList
$car
[1] "car" "rent car" "buy car" "mechanic" "car rent"
$plane
[1] "plane" "plane ride" "plane ticket" "cheap flights"
[5] "book flight" "easyjet" "lufthansa" "british airways"
[9] "ryan air" "air france" "fly emirates"
data <- read.table(text = "
main_word,related
car,rent car
car,buy car
car,mechanic
car,car rent
plane,plane ride
plane,plane ticket
plane,cheap flights
plane,book flight
plane,easyjet
plane,lufthansa
plane,british airways
plane,ryan air
plane,air france
plane,fly emirates", header = TRUE, sep = ",", stringsAsFactors = FALSE)