2015-02-28 3 views
-2

У меня есть вопрос о переработке переработанных предметов. Я упростил свою проблему в следующем коде.cbind переработанные строки для добавления в последнюю строку в R

У меня есть два объекта «a» и «b». «a» имеет 5 строк, а «b» - 10 строк.

Когда я привязываю их, я получаю data.frame с 10 строками, а мой столбец «a» перерабатывается до тех пор, пока он не достигнет 10 строк. Моя проблема заключается в том, как я перерабатываю значения, чтобы они добавили длину (a). Благодаря!

a <- c(4, 3, 5, 2, 8) 
b <- c(1:10) 

cbind(a,b) 


    a b 
1 4 1 
2 3 2 
3 5 3 
4 2 4 
5 8 5 
6 4 6 
7 3 7 
8 5 8 
9 2 9 
10 8 10 

What I want to do: a[6] = a[5] + 4, a[7] = a[5] + 5, ... a[10] = a[5] + 8 


    a b 
1 4 1 
2 3 2 
3 5 3 
4 2 4 
5 8 5 
6 12 6 
7 11 7 
8 13 8 
9 10 9 
10 16 10 
+1

Предположим, что ваш 'a <- c (4, 3, 5, 2, 8)', какой будет 'after' набор данных после' cbind'? – akrun

+2

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

+0

Просьба предоставить больше примеров или более четкое объяснение. – nikaltipar

ответ

1

Вы имеете в виду это? У меня есть 5 элементов, и я добавляю [5] к следующим 5 пунктам, 2 * a [5] к следующим 5 пунктам и так далее.

a <- c(4, 3, 5, 2, 8) 
b <- c(1:11) 
counter <-0:floor(length(b)-1)/length(a)) 
new.col <- rep(a[length(a)] * counter, each = length(a)) + a 
length(new.col) <- length(b) 
new.col 
[1] 4 3 5 2 8 12 11 13 10 16 

Первая длина (а) деталь остаться нетронутой, мы добавим [5] к следующей длине (а) изделия, 2 * а [5] к следующей длине (а) изделия и так далее. ..