2016-01-05 2 views
0

Я пытаюсь связать два кадра данных. Первый имеет количественные значения, а второй имеет свое относительное значение со строкой. Вы можете видеть, что у каждой из данных есть столбцы 0, 1, 3, 5, 7. Но как я могу перемещать относительное значение, немедленно смежное с наблюдаемым значением?Добавить строки процента в Dataframe

Я попытался сделать это:

cbind(x,y) 
     0 1 3  5  7  0  1  3  5  7 
11 747 0 0  0  0 100.00 0.00 0.00 0.00 0.00 
12 249 0 0  0  0 100.00 0.00 0.00 0.00 0.00 
13 1454 0 0  0 708 67.25 0.00 0.00 0.00 32.75 
14 708 0 0  0  0 100.00 0.00 0.00 0.00 0.00 
15 2661 0 0 249  0 91.44 0.00 0.00 8.56 0.00 
+1

, если имена столбцов на самом деле же, вы можете заказать по именам столбцов: 'cbind (х, у) [, порядка (имена (cbind (х, у)))]'. Будет какое-то переименование, но я считаю, что это удобно в этом случае. – Jota

ответ

1

Использование выбора, вы можете сделать это следующим образом dplyr в:

library(dplyr) 
colnames(df) <- c('col0', 'col1', 'col3', 'col5', 'col7', 'col0percent', 'col1percent', 'col3percent', 'col5percent', 'col7percent') 
df <- select(df, col0, col0percent, col1, col1percent, col3, col3percent, col5, col5percent, col7, col7percent) 
0

не оптимальна, но использует только стандартные пакеты

nc <- ncol(x) 
nr <- nrow(x) 
i <- seq(1, by = 2, len = nc) 
df <- data.frame(matrix(NA, ncol = nc, nrow = nr)) 
df[,i] <- x 
df[,i+1] <- y 
0

Просто используйте индекс с нужным порядком столбцов.

cbind(x,y)[c(1,6,2,7,3,8,4,9,5,10)] 
Смежные вопросы