将DF变量转换为不在df中的多个字符串变量包括代码示例

问题描述

具有这样的df:

gradle.build

我按特定值过滤,例如1:

df <- structure(list(V1 = c("1","2","3","4","5","6"),V2 = c("Cat,Dog","Fish,Bird","Cat,Fish,"Cat","Dog,"Owl,Dog")),class = "data.frame",row.names = c(NA,-6L))

如何将V2的结果保存在多个字符串变量中(而不是df中),

df <- df %>% filter(V1 == 1)

请注意,现在处理V1 == 3时,我有3个变量V2_1,V2_2,V2_3。

谢谢!

解决方法

您可以在","上分割字符串并获取向量。

library(dplyr)    
df <- df %>% filter(V1 == 1)
tmp <- unlist(strsplit(df$V2,','))

如果要将数据作为V2_1V2_2之类的独立变量,则可以使用list2env

list2env(setNames(as.list(tmp),paste0('V2_',seq_along(tmp))),.GlobalEnv)