2016-07-15 8 views
2

у меня есть кадр данных имена столбцов строкиимена проверки столбцов и связать их

a <- c("Round_and_Centre", "Number", "Round") 
b <- c("Round_and_Centre", "Number", "Round") 
c <- c("Round_and_Centre", "Number", "Round") 

Я хочу, чтобы проверить имена в каждой колонке идентичны с теми же именами столбцов Fn ... если они идентичны, мне нужно rbind строк, чтобы получить выход

Я не могу найти функцию, чтобы проверить имена столбцов и дать вывод true, если они идентичны. если выход верно, то rbind их

+0

Вы можете использовать '' identical' т.е. идентичны (а, б) ' – akrun

+0

наименования (a) [1] "Round_and_Centre" "number" [3] "Круглые" > имена (b) [1] "Round_and_Centre" "numb эр» [3] "Круглый" > идентичны (а, б) [1] FALSE – anonymous

+0

им получить выход как ложь, даже если имена Col такие же – anonymous

ответ

1

Одним из вариантов является

all(unlist(Map(`==`, list(a), list(b,c)))) 

Или используйте combn

all(combn(c("a", "b", "c"),2, FUN = function(x) identical(get(x[1]), get(x[2])))) 
+1

Отличное решение. Приятно изучать новые вещи. – Rockbar

1
if (all(colnames(a)==colnames(b))&all(colnames(a)==colnames(c)&all(colnames(b)==colnames(c)){ 
    d <- rbind(a,b) 
    e <- rbind(d,c) 
{ 
+0

можно ли получить более легкое решение, чтобы проверить, идентичны ли 5 ​​столбцов, а затем привязать их? – anonymous

+0

Вот как раз решение вашей проблемы: http: //stackoverflow.com/questions/30850400/using-identical-in-r-with-multiple-vectors – Rockbar

+0

решение в ссылке также работало ... спасибо :) – anonymous