如何将字符串附加到 for 循环中的向量?

How to append strings to a vector from a for loop?

我得到一个数据框,其中有一列名称以逗号分隔,我想创建一个向量,其中独立包含每个名称,但我的解决方案不起作用。需要帮助。

library(tidyverse)

cast <- netflix_titles$cast
names <- c()
for(i in cast){
  splitted <- strsplit(i, ",")
  for(act in splitted){
    append(names, act)
  }
}

行采用这种格式

"Jesse Eisenberg, Woody Harrelson, Emma Stone, Abigail Breslin, Amber Heard, Bill Murray, Derek Graf"

您可以使用 unlist(strsplit()) 获得名称向量。 strsplit 本身 returns 一个列表,您可以使用 unlist.

将其转换为原子向量
unlist(strsplit("Jesse Eisenberg, Woody Harrelson, Emma Stone, Abigail Breslin, Amber Heard, Bill Murray, Derek Graf", ", "))

#> [1] "Jesse Eisenberg" "Woody Harrelson" "Emma Stone"      "Abigail Breslin"
#> [5] "Amber Heard"     "Bill Murray"     "Derek Graf" 

因此,如果添加 unlist().

,则可以完全删除 for 循环

您甚至可以对数据框中的整列执行此操作:

df <- data.frame(cast = c(
  "Jesse Eisenberg, Woody Harrelson, Emma Stone, Abigail Breslin, Amber Heard, Bill Murray, Derek Graf",
  "Bruce Willis, Matt Damon, Brad Pitt"
))

unlist(strsplit(df$cast, ", "))

#> [1] "Jesse Eisenberg" "Woody Harrelson" "Emma Stone"      "Abigail Breslin"
#> [5] "Amber Heard"     "Bill Murray"     "Derek Graf"      "Bruce Willis"   
#> [9] "Matt Damon"      "Brad Pitt"