R 解包字符串并获取字符串的向量
我会解释我的问题是什么。这是我的 单个字符串的列 我想要的是: 如果这些字符串组本身可以存储为向量,那就更好了 总之: 有人知道如何: 首先打开我拥有的字符串列表 在每个字符串中分配字符串的子组,逗号分隔每个所需的字符串。 理想情况下,将子组分配给向量 谢谢你的建议 我们可以使用strsplit进行拆分以获得向量列表R 解包字符串并获取字符串的向量,r,R,我会解释我的问题是什么。这是我的 单个字符串的列 我想要的是: 如果这些字符串组本身可以存储为向量,那就更好了 总之: 有人知道如何: 首先打开我拥有的字符串列表 在每个字符串中分配字符串的子组,逗号分隔每个所需的字符串。 理想情况下,将子组分配给向量 谢谢你的建议 我们可以使用strsplit进行拆分以获得向量列表 您可以使用tidyr::separate将字符串拆分为多列,必要时插入NAs: library(tidyr) df2 <- separate(df, Column_of_st
您可以使用tidyr::separate将字符串拆分为多列,必要时插入NAs:
library(tidyr)
df2 <- separate(df, Column_of_strings, c('str1', 'str2', 'str3'), sep = ',', fill = 'right')
df2
# str1 str2 str3
# 1 NI <NA> <NA>
# 2 FA <NA> <NA>
# 3 FI <NA> <NA>
# 4 FST <NA> <NA>
# 5 FA NI <NA>
# 6 IA FI IO
# 7 NI DI <NA>
# 8 IA NI IO
# 9 IA FT FI
# 10 FA FT FI
# 11 IA FST FI
太棒了,创建的lst包含字符串子组的向量。非常感谢你!这个评论上面的数据框不是我想要的。它将向量中的每个对象向上分割,并将每个对象分配到一个单独的列中。尽管如此,cSplit函数对于其他任务可能有用。@InfiniteFlashChess您也可以使用long选项将其转换为“long”格式。它看起来像direction=long在一个垂直列中延伸c IA、FST、FI作为IA、FST、FI,该列每行只有一个子组字符串。这就是为什么当我尝试你的建议时有23个观察结果。我想在每一行中保留字符串的向量,这正是列表所做的。非常感谢!这个链接证实了我所说的,哈哈
df
Column_of_strings
"NI"
"FA"
"FI"
"FST"
"FA,NI"
"IA,FI,IO"
"NI,DI"
"IA,NI,IO"
"IA,FT,FI"
"FA,FT,FI"
"IA,FST,FI"
Column_of_strings
"NI"
"FA"
"FI"
"FST"
"FA","NI"
"IA","FI","IO"
"NI","DI"
"IA","NI","IO"
"IA","FT","FI"
"FA","FT","FI"
"IA","FST","FI"
Column_of_strings
c("NI")
c("FA")
c("FI")
c("FST")
c("FA","NI")
c("IA","FI","IO")
c("NI","DI")
c("IA","NI","IO")
c("IA","FT","FI")
c("FA","FT","FI")
c("IA","FST","FI")
lst <- strsplit(as.character(df[,1]), ',')
lapply(lst, table)
library(tidyr)
df2 <- separate(df, Column_of_strings, c('str1', 'str2', 'str3'), sep = ',', fill = 'right')
df2
# str1 str2 str3
# 1 NI <NA> <NA>
# 2 FA <NA> <NA>
# 3 FI <NA> <NA>
# 4 FST <NA> <NA>
# 5 FA NI <NA>
# 6 IA FI IO
# 7 NI DI <NA>
# 8 IA NI IO
# 9 IA FT FI
# 10 FA FT FI
# 11 IA FST FI
df2 <- cbind(id = seq_along(df2$str1), df2)
library(reshape2)
melt(df2, id = 'id', na.rm = TRUE)
# id variable value
# 1 1 str1 NI
# 2 2 str1 FA
# 3 3 str1 FI
# 4 4 str1 FST
# 5 5 str1 FA
# 6 6 str1 IA
# 7 7 str1 NI
# 8 8 str1 IA
# 9 9 str1 IA
# 10 10 str1 FA
# 11 11 str1 IA
# 16 5 str2 NI
# 17 6 str2 FI
# 18 7 str2 DI
# 19 8 str2 NI
# 20 9 str2 FT
# 21 10 str2 FT
# 22 11 str2 FST
# 28 6 str3 IO
# 30 8 str3 IO
# 31 9 str3 FI
# 32 10 str3 FI
# 33 11 str3 FI