У меня есть кадр данных со многими столбцами, и я хотел бы объединить столбцы, начатые в столбце 5. Я пытаюсь использовать apply для этого.Применить функцию для объединения столбцов
Кадр данных:
1 682333 191.858 191517119 C A C A A A C A A A A A
2 1862626 71.9275 56032940 A C C C A A A C A C A A
3 11957134 155.78 150230950 B B B B A B A B A B A B
4 2516482 51.2692 31496569 B A A A A A A A A A A A
5 9378200 51.2798 31572927 A A B B B A A A A A B A
6 2071534 52.1573 32824318 A B A B A B A B B B A B
7 2074633 33.068 19035920 A A B A A A B A B A B A
8 7856856 121.811 117540910 A A A A A A A A B A B A
9 3741206 2.18574 2169864 A A A A A A A A A A A A
10 4411364 12.5959 24191374 C C A C A C C C A C A C
Выход:
1 682333 191.858 191517119 CA CA AA CA AA AA
2 1862626 71.9275 56032940 AC CC AA AC AC AA
3 11957134 155.78 150230950 BB BB AB AB AB AB
4 2516482 51.2692 31496569 BA AA AA AA AA AA
5 9378200 51.2798 31572927 AA BB BA AA AA BA
6 2071534 52.1573 32824318 AB AB AB AB BB AB
7 2074633 33.068 19035920 AA BA AA BA BA BA
8 7856856 121.811 117540910 AA AA AA AA BA BA
9 3741206 2.18574 2169864 AA AA AA AA AA AA
10 4411364 12.5959 24191374 CC AC AC CC AC AC
Я пытался так:
col <- apply(df[,-1:-4], 2, function(x) {paste(x,x+1,sep="")}
df <- cbind(df[,1:4],col)
Но есть ошибка:
Error in x + 1 : non-numeric argument to binary operator.
'x + 1' не ссылается на индекс столбца. Вы буквально пытаетесь сделать «C» + 1', что логически не имеет смысла. 'apply (df, 2, ...)' также управляет вниз-столбцом, а не через страницу. – thelatemail
Решение «Карта» ниже, вероятно, имеет больше смысла, но для адаптации кода, который вы использовали, попробуйте - 't (apply (df [, - (1: 4)], 1, function (x) paste0 (x [c (TRUE, FALSE)], x [c (FALSE, TRUE)]))) ' – thelatemail