Я работаю с файлом csv, и у меня есть столбец с именем «statistics_lastLocatedTime», как показано в csv file image Я бы хотел вычесть вторую строку «statistics_lastLocatedTime» из первой строки; третья строка из второго ряда и так далее до последней строки, а затем хранить все эти различия в отдельной колонке, а затем объединить эту колонку для других связанных столбцов, как показано в коде ниже:Как вычесть даты и хранить их в отдельной колонке?
##select related features
data <- read.csv("D:/smart tech/store/2016-10-11.csv")
(columns <- data[with(data, macAddress == "7c:11:be:ce:df:1d"),
c(2,10,11,38,39,48,50) ])
write.csv(columns, file = "updated.csv", row.names = FALSE)
## take time difference
date_data <- read.csv("D:/R/data/updated.csv")
(dates <- date_data[1:40, c(2)])
NROW(dates)
for (i in 1:NROW(dates)) {
j <- i+1
r1 <- strptime(paste(dates[i]),"%Y-%m-%d %H:%M:%S")
r2 <- strptime(paste(dates[j]),"%Y-%m-%d %H:%M:%S")
diff <- as.numeric(difftime(r1,r2))
print (diff)
}
## combine time difference with other related columns
combine <- cbind(columns, diff)
combine
Теперь проблема заключается в том, что я могу получить разницу в строках, но не могу сохранить эти значения в качестве столбца, а затем объединить этот столбец с другими соответствующими столбцами. пожалуйста помогите. заранее спасибо.
Почему вы фильтруете свои «date_data' до первых 40 строк? Это не сможет вернуться к столбцам. – Parfait
Фактически общее количество строк в macAddress == "7c: 11: be: ce: df: 1d" всего 40, и это не имеет значения, если я использую (даты <- date_data [1:40, c (2)]) или (даты <- date_data [, c (2)]). команды будут давать одинаковый вывод, т. е. все 40 строк, где macAddress == "7c: 11: be: ce: df: 1d" –
Вы хотите вычислить diff в 'statistics_lastLocatedTime' и сохранить этот вектор обратно в фреймворке данных. – smci