R 将列中的文本转换为数据帧

R 将列中的文本转换为数据帧,r,tm,R,Tm,我在数据集的列中有如下文本数据 UNIQUEID Cloumn1 1 FG 2 PR FG RT 3 FG BR UP DR ST .... 我想把数据列转换成一个数据帧,这样输出就如下图所示,这些文本FG、RN等就变成了变量 UNIQUEID FG PR RT BR UP DR ST 1 1 0 0 0 0 0 0 2 1 1 1 0 0 0 0 3 1 0

我在数据集的列中有如下文本数据

UNIQUEID Cloumn1
1        FG
2        PR FG RT
3        FG BR UP DR ST
....
我想把数据列转换成一个数据帧,这样输出就如下图所示,这些文本FG、RN等就变成了变量

UNIQUEID   FG  PR RT BR UP DR ST
1           1  0  0  0  0  0  0
2           1  1  1  0  0  0  0
3           1  0  0  1  1  1  1
......
我已尝试使用TM软件包进行转换,如下所示

corpus = Corpus(VectorSource(weather$codesum))
corpus = tm_map(corpus, tolower)
corpus = tm_map(corpus, removePunctuation)
corpus = tm_map(corpus, removeWords, stopwords("english"))
corpus = tm_map(corpus, PlainTextDocument)
dtm =  DocumentTermMatrix(corpus)
dtm = as.data.frame(as.matrix(dtm))
colnames(dtm) = make.names(colnames(dtm))
str(dtm)

data.frame:   20517 obs. of  1 variable:
 $ prfg: num  0 0 0 0 0 0 0 0 0 0 ...
当我看到输出时,我发现只有一个变量。我希望所有的文本都是变量

请推荐解决方案

如果您喜欢tidyr和dplyr,您也可以尝试此解决方案:

# libraries
library (tidyr)
library(dplyr)

# your data
t <- "UNIQUEID,Cloumn1
1,FG
2,PR FG RT
3,FG BR UP DR ST"

df <- read.table(text=t, header = T, sep=',', stringsAsFactors=F)

# The interesting part
df %>%
  transform(                         # trasforms each string in an array
    Cloumn1 = strsplit(Cloumn1, " ")
    ) %>%
  unnest(Cloumn1) %>%                # for each string in Cloumn1 creates a row
  mutate(v = 1) %>%                  # let's add a dummy 1
  spread(Cloumn1, v, fill= 0)        # rows become columns and NA is replaced by 0

唯一克隆1 FG 2 PR FG RT 3 FG BR UP DR ST。。。。