2014-09-26 2 views
0

У меня есть 2 колонки 100000 строк dataframe, который выглядит следующим образом:Dataframe перепрофилирования на основе подсчета столбца

Count    String 
3     "Hello World" 
2     "Hi John" 
1     "Dear Joe" 

Я хочу, чтобы изменить этот dataframe в dataframe в 1 колонке, удаление счетчика и вместо того, чтобы добавлять повторяющиеся элементы , Например,

String 
"Hello World" 
"Hello World" 
"Hello World" 
"Hi John" 
"Hi John" 
"Dear Joe" 
+0

Почти дубликат ["создание строк на основе значения счетчика"] (http://stackoverflow.com/questions/25633942/r-creating-rows-based-upon-counter-value/) – thelatemail

+0

См. [' expandRows'] (https://github.com/mrdwab/SOfun/blob/master/R/expandRows.R) из [моего пакета SOfun] (https://github.com/mrdwab/SOfun): -) – A5C1D2H2I1M1N2O1R2T1

+0

't (t (с (df, rep (String, Count))))' –

ответ

3

Попробуйте

one_col_df <- data.frame(String = rep(df$String, df$Count)) 

Что происходит там, что для каждой строки, функция rep будет повторяться Count раз, соблюдая их порядок в векторе.

0

Вот один из подходов.

a <- c(3:1) 
foo <- c("hello", "hi", "dear") 

rep(foo, a) 

[1] "hello" "hello" "hello" "hi" "hi" "dear" 
Смежные вопросы