2013-11-29 5 views
-2

это мой кодкак функция пасты, работающая в R?

здесь функция вставки работает только для двух комбинаций. Для этого требуется один и тот же код в цикле для более двух комбинаций одновременно.

i<-2 

while (i<=10) 
{ 
results<-data.frame() 
results<- t(apply(data,1,function(x) combn(x,i,prod))) 
comb <- combn(colnames(data),i) 
colnames(results) <- apply(comb,i,function(x) paste(x[1],x[2])) 
i<-i+1 
} 

теперь я получаю две комбинации, как

V1V2, V1V3,V1V4,.... 

теперь я хочу

v1v2v3, v1v2v4, ... 

в paste функции.

+1

Пожалуйста, прочитайте страницы справки>? Наклеить Вы вставляете два элемента, а не три. Вы можете указать три комбинации в вызове combn, а затем вставить три элемента. Если вы хотите, как я подозреваю, все комбинации из двух, трех, четырех и пяти элементов, вам придется найти другой способ сделать это. Кроме того, ваши три вопроса могли быть заданы в одном. Пожалуйста, приложите все усилия, чтобы быть максимально точными и упорядочить свои вопросы с примерами и ожидаемой продукцией. – Chargaff

+0

В вашем втором обращении обращайтесь к второму аргументу - маркер один, может быть 1 или 2 в вашем случае, я иду от 2 до 10. – Chargaff

+0

Это, кажется, частично копия [** другого вопроса **] (http : //stackoverflow.com/questions/20290069/multiply-multiple-column-and-find-sum-of-each-column-for-multiple-values/20292221#20292221), на который я только что дал ответ, но опубликовал с разными именами пользователей. Хм ... – Henrik

ответ

0

comb <- combn(colnames(data),v)

colnames(results) <- apply(comb,2,function(rows) paste0(rows, collapse = ""))

InstEd использования пасты paste0

@henrik и @chargaff