2017-12-30 14 views
1

단어 (x)와 숫자 (y)가있는 열이 하나 있습니다. 나는 단어가 열 y에 표시된 횟수만큼 반복되는 세 번째 열 (z)을 만들고 싶습니다.데이터 프레임에서 반복되는 열 X 열에 표시된 횟수 X

예 데이터 :

x <- c("one", "two", "three") 
y <- c(1, 2, 3) 
df <- data.frame(x, y) 

이것은 선호하는 최종 결과 : 나는 시도

z <- c("one", "two two", "three three three") 
df <- data.frame(x, y, z) 

     x y     z 
1 one 1    one 
2 two 2   two two 
3 three 3 three three three 

가 :

df$z <- rep(df$x, df$y) 

답변

3

우리는 strrep

with(df, strrep(x, y)) 
을 사용할 수 있습니다 공백없이 출력을 제공하지만, 우리는 'X'의 문자열의 끝에서 공백, 다음 paste 공간을 필요로하는 경우는 strrep을하고 함께 마지막에 여분의 공간을 제거

trimws

df$z <- with(df, trimws(strrep(paste(x, ' '), y))) 
df$z 
#[1] "one"     "two two"   "three three three"