Я начинаю использовать R, и вполне возможно, что мой вопрос прост, но тем не менее я потратил много времени, пытаясь понять, что я делаю неправильно, но безрезультатно.
Я должен поблагодарить вас, потому что я обнаружил этот сайт на прошлой неделе в поисках других вопросов. Но теперь, как кто-то новый, часто трудно интерпретировать чужой код.
Моя версия RStudio: 1.1.442
Мой вопрос заключается в том, что у меня есть два фрейма данных, один с несколькими годами, а другой с некоторыми элементами, которые были найдены в нескольких тралах, и мне нужно суммировать элементы и сделать другую переменную. Которые появляются суммированием предметов за год и тралом.
Итак, я сделал цикл для того, чтобы иметь одинаковые донные тралы и один и тот же год для суммирования элементов.
Я упростил свою базу данных.
BT<- c(1, 1, 2, 2, 2, 3, 3, 3, 3, 3)
YEAR<- c(2007, 2007, 2008, 2008, 2008, 2009, 2009, 2009, 2009, 2009)
W<- c(95, 6, 60, 50, 4, 21, 56, 44, 23, 4)
Data1= data.frame(BT,YEAR,W)
Trawl<- c(1, 2, 3)
Year<- c(2007, 2008, 2009)
Data2= data.frame(Trawl,Year)
peso=cbind()
for(i in 1:length(Data1$BT)) {
ind=which(Data2$Trawl == Data1$BT[i] & Data2$Year == Data1$YEAR[i])
print(i)
print(ind)
print(Data1$W[ind])
peso[i]=Data1$W[ind]
sumaGr[i]=colSums(peso[i])
}
И я получаю это:
Ошибка в столбцах (песо [i]):
'x' должен быть массивом как минимум двух измерений
Но я не знаю, как это исправить.
Буду признателен за вашу помощь и советы.
Заранее спасибо.