【发布时间】:2020-04-19 06:09:02
【问题描述】:
对于文本挖掘项目,我必须随着时间的推移调查单词列表的发展。为此,我需要拆分行名,以便有一列带有公司名称,一列带有年份。这是我的数据框中的摘录:
abs access allow analysis application approach base big business challenge company
Adidas_2010.txt 13 25 26 11 41 132 1 266 13 115 1
Adidas_2011.txt 1 3 1 0 0 8 0 11 2 10 0
Adidas_2012.txt 29 35 37 22 110 181 7 384 31 136 3
Adidas_2013.txt 28 47 38 32 180 184 4 451 30 129 3
Adidas_2014.txt 12 42 38 27 159 207 6 921 32 128 6
Adidas_2016.txt 30 47 50 47 162 251 9 1061 32 171 13
Nike_2009.txt 16 15 17 12 33 177 9 346 93 196 1
Nike_2011.txt 10 30 0 3 0 0 0 81 7 31 0
Nike_2012.txt 21 22 12 57 199 300 7 214 11 107 3
Nike_2013.txt 20 32 30 11 123 321 4 331 90 239 3
Nike_2014.txt 33 43 30 33 119 137 6 441 67 318 6
Nike_2015.txt 51 42 41 27 102 151 9 1061 32 221 13
这是我的代码:
dtm <- DocumentTermMatrix(corpus, control=list(dictionary = word_list))
df1 <- data.frame(as.matrix(dtm), row.names = filenames_annualreports)
我试过了:
names_plus_year <- rownames(df1)
names_plus_year_split <- strsplit(names_plus_year, "_")
rownames(df1) <- sapply(names_plus_year_split, "[", 1)
但我收到以下错误:
Error in `.rowNamesDF<-`(x, value = value) :
double 'row.names' not allowed
还有其他方法可以拆分行名吗?非常感谢! :)
【问题讨论】:
-
有一个包可以做到这一点,并且具有很大的灵活性。包裹是
splitstackshape。试试看,如果你经常这样做,它可能会非常有用。 -
澄清一下,您想将行名拆分为 2 列吗?因为 R 没有(AFAIK)没有多级行名或索引方式,例如Python 的 pandas 可以