2013-11-22 2 views
0

Вот мои кодовые имена для моего фрейма данных.Преобразование данных/Вставить в R

colnames(new)[3:ncol(new)] 
[1] "tag12" "tag13" "tag14" "tag15" "tag16" "tag17" "tag18" "tag22" "tag23" 
[10] "tag24" 

Как создать что-то вроде

< new.1 - tag12 + tag13 + tag14 ......

Вот моя первая попытка.

for (i in 3:ncol(all.1)) 
new.1<-as.data.frame(paste(colnames(all.1)[c(i-1)],colnames(all.1)[c(i)],sep="+")) 

     paste(colnames(all.1)[c(i - 1)], colnames(all.1)[c(i)], sep = "+") 
1                tag3+tag4 
+0

Этот блог может быть полезным: http://trinkerrstuff.wordpress.com/2013/09/15/paste-paste0-and-sprintf-2/ –

ответ

1

Почему не просто:

new.1 <- paste0(colnames(new)[3:ncol(new)], collapse="+") 

Если вы даете только один вектор для paste или paste0 вы получаете вектор обратно с таким количеством элементов, как в исходном векторе. Если вы хотите объединить элементы с знаками «+» между ними, вам нужно collapse.

+0

Я думал о чем-то другом. Делал это с петлей. Спасибо –

+0

Это своего рода векторизация. Поместите многопозиционный вектор и вытащите один элемент. –

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