У меня есть две таблицы. у нас есть информация с 2012 по 2014 год с периодом 3 часа. Это выглядит следующим образом:заполнение пробелов в таблице
1 01.06.2012 00:00 10 0
2 01.06.2012 03:00 10 0
3 01.06.2012 06:00 10 6
4 01.06.2012 09:00 7,5 0
5 01.06.2012 12:00 6 2,5
6 01.06.2012 15:00 6 0
7 01.06.2012 18:00 4 0
8 01.06.2012 21:00 4 0
9 02.06.2012 00:00 0 0
10 02.06.2012 03:00 0 0
Другая таблица в то же время, но с периодом 1 минута и он не имеет никаких данных.
1 01.06.2012 00:00 3 1
2 01.06.2012 00:01 3 1
3 01.06.2012 00:01 3 1
4 01.06.2012 00:03 3 1
5 01.06.2012 00:03 3 1
6 01.06.2012 00:05 3 1
7 01.06.2012 00:05 3 1
8 01.06.2012 00:07 3 1
9 01.06.2012 00:08 3 1
10 01.06.2012 00:09 3 1
11 01.06.2012 00:10 3 1
Теперь мне нужны значения 2-го и 3-го рядов второй таблицы соотносить с первым, так что если метка времени из второй таблицы между timestamp(i)
и timestamp(i+1)
первой таблицы будет брать B(i)
и C(i)
и скопируйте их. У меня есть этот код, но, как вы можете видеть сверху, он не вводит правильные значения. 3 & 1
вместо 10 & 0
.
clouds <- read.csv('~/2012-2014 clouds info.csv', sep=";", header = FALSE)
cloudFull <- read.csv('~/2012-2014 clouds.csv', sep=";", header = FALSE)
for (i in 1:nrow(cloudFull)){
dateOne <- strptime(cloudFull[i,1], '%d.%m.%Y %H:%M')
for (j in 1:nrow(clouds)){
bottomDate = strptime(clouds[j,1], '%d.%m.%Y %H:%M')
upperDate = strptime(clouds[j+1,1], '%d.%m.%Y %H:%M')
if ((dateOne >= bottomDate) && (dateOne < upperDate)) {
cloudFull[i,2] <- clouds[j,2]
cloudFull[i,3] <- clouds[j,3]
break
}
}
}
write.csv(cloudFull, file = 'cc.csv')
Что делать?
в предположении, что второй набор данных cloudFull, ваш код работает для меня и дает желаемые результаты. одна проблема с такими петлями записи заключается в том, что они имеют побочный эффект загромождения рабочего пространства, поэтому, возможно, другая переменная вызывает проблемы. перезагрузите сеанс или удалите все переменные и запустите новый – rawr
, попытавшись сделать это, все же приходят с теми же результатами. Я даже не понимаю, откуда взялись 3 и 1. –