将每日数据输入R以允许进一步操作的最佳方法

将每日数据输入R以允许进一步操作的最佳方法,r,import,R,Import,我有Excel中的每日降雨数据(我可以将其保存为CSV或txt文件),我想处理这些数据并将其加载到R中 数据的格式如下所示 年份;月份;每月第1天下雨,第2天下雨,第31天下雨 这意味着我有一个大的数组/表。有些数据丢失,因为它没有被记录,有些是因为2月31日、6月31日等不存在 我想分析一些东西,比如每月的总数,以及它们的分布 输入数据的最佳方式是什么,这样可以方便地对其进行操作,并且我可以区分缺失数据和空数据(2月31日) 提前非常感谢有几件事让你看一看。例如,readxl::read_ex

我有Excel中的每日降雨数据(我可以将其保存为CSV或txt文件),我想处理这些数据并将其加载到R中

数据的格式如下所示

年份;月份;每月第1天下雨,第2天下雨,第31天下雨

这意味着我有一个大的数组/表。有些数据丢失,因为它没有被记录,有些是因为2月31日、6月31日等不存在

我想分析一些东西,比如每月的总数,以及它们的分布

输入数据的最佳方式是什么,这样可以方便地对其进行操作,并且我可以区分缺失数据和空数据(2月31日)


提前非常感谢

有几件事让你看一看。例如,
readxl::read_excel()
用于读取excel文件,或
Hmisc::monthDays(日期)
用于确定日期向量中每个月的天数

无论如何,这里有一个想法作为开始:

# create sample data
set.seed(1)
mat <- matrix(rbinom(5*31, 31, .5), nrow=5)
mat[sample(1:length(mat), 10)] <- NA
df <- data.frame(year=2016, month=1:5, mat)

#  reshape data from wide to long format
library(reshape2)
dflong <- melt(df, id.vars = 1:2, variable.name = "day")

# add date column (will be NA if conversion is not possible, i.e. if date does not exists)
dflong$date <- as.Date(with(dflong, paste(year, month, day, sep="-")), format = "%Y-%m-X%e")

# Select only existing dates
dflong <- subset(dflong[order(dflong$month), ], !is.na(date))

# Aggregate: means per month and year (missing values removed)
aggregate(value~year+month, dflong, mean, na.rm=TRUE)
#   year month    value
# 1 2016     1 15.93548
# 2 2016     2 15.26923
# 3 2016     3 15.10345
# 4 2016     4 15.74074
# 5 2016     5 16.16667
#创建示例数据
种子(1)

mat旁注:提供您尝试过的示例数据和代码总是一个好主意,人们可以使用这些数据和代码-这将为您提供更多答案,您可能会更快地收到它们。否则,每个社区成员都必须为自己树立榜样。再见,谢谢,很抱歉我的回复太慢。我会研究你可能的解决办法,看看它是否能让我走。干杯