2013-02-27 2 views
0

Я использую команду cbind в R, чтобы связать многие файлы данных вместе, и каждый фрейм данных имеет одинаковые имена столбцов, поэтому, когда я их связываю, R автоматически изменяет имена столбцов от их исходных имен. Например, есть столбец с именем «X», поэтому для каждой привязки он переименовывает этот X.1, X.2, X.3 и т. Д. Есть ли способ связать их без изменения имени столбца и иметь несколько столбцы с тем же именем?Взаимодействие столбцов в R

Причина, по которой я хочу сделать это, так что я могу сортировать объединенные data.frame после имен столбцов, чтобы получить одинаковые именованные столбцы в том же порядке, что и в комбинированном data.frame.

+0

Можете ли вы дать небольшой пример набора данных и небольшой пример того, что вы хотите получить обратно. – N8TRO

+3

(1) Не будет ли сортировка работать с суффикс? (2) AFAIK единственный способ получить суффиксы вообще, если вы бесполезно вызываете 'data.frame()' по результатам 'cbind'. – joran

ответ

5

Для иллюстрации точки из моего комментария:

> d1 <- data.frame(a = 1:5,b = 1:5) 
> d2 <- data.frame(a = letters[1:5],b = letters[1:5]) 
> cbind(d1,d2) 
    a b a b 
1 1 1 a a 
2 2 2 b b 
3 3 3 c c 
4 4 4 d d 
5 5 5 e e 

> data.frame(cbind(d1,d2)) 
    a b a.1 b.1 
1 1 1 a a 
2 2 2 b b 
3 3 3 c c 
4 4 4 d d 
5 5 5 e e 

> x <- data.frame(cbind(d1,d2)) 
> sort(colnames(x)) 
[1] "a" "a.1" "b" "b.1" 
> x[,order(colnames(x))] 
    a a.1 b b.1 
1 1 a 1 a 
2 2 b 2 b 
3 3 c 3 c 
4 4 d 4 d 
5 5 e 5 e 
+0

Да, вы правы. Это действительно работает отлично для того, что мне нужно. Извините, я довольно новичок в R. Если бы я захотел удалить некоторое подмножество столбцов, есть ли простой способ сделать это? Используя ваш пример, скажем, у нас было много столбцов «a» и они хотели удалить только те. Скажите a.1, a.2, a.3, a.4 и т. Д.? – user1836894

+2

@ user1836894 try somthing like 'x [, - grep ('. * [.]. *', Colnames (x))]' для удаления точечных столбцов – agstudy

+1

@agstudy Вы могли бы, вероятно, упростить это до '' \\. "' , –

Смежные вопросы