首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决此错误:尝试在没有维度的对象上设置“行名”

如何解决此错误:尝试在没有维度的对象上设置“行名”
EN

Stack Overflow用户
提问于 2016-09-21 02:29:00
回答 1查看 14.9K关注 0票数 4

我有一个csv文件,每天流。我需要把每天的价值合并成每月。我正在尝试使用"daily2monthly“函数的"hydroTSM”包。BRPT2.csv中的示例数据:

代码语言:javascript
复制
_date,_time,_value,_flag
 10/2/1959,0:00:00,0,2
 10/3/1959,0:00:00,0,2
 10/4/1959,0:00:00,1540,2
 10/5/1959,0:00:00,16100,2
 10/6/1959,0:00:00,6680,2
 10/7/1959,0:00:00,3100,2
 10/8/1959,0:00:00,2060,2

我使用了以下命令:

代码语言:javascript
复制
qme<- read.csv(file = "BRPT2.csv",header = T,sep = ",") #read in csv file
date<- as.Date(qme$X_date,format("%Y-%m-%d")) #convert date column to date format from factor
flow<- qme[,3]
flow_2<-replace(flow,flow==-999,0) #replace the missing values (-999) with 0
df<- data.frame()
df<- rbind(df,data.frame(date,flow_2,stringsAsFactors = FALSE))
daily2monthly(df,FUN=sum,dates=1)

它给出了以下错误消息:

rownames<-中的错误(*tmp*,value = c("Oct-1959“、"Nov-1959”、"Dec-1959“):尝试在没有维度的对象上设置‘行名’。

有人能帮我解决这个问题吗。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-21 06:19:27

首先尝试将df转换为zoo对象:

代码语言:javascript
复制
z <- zoo(df[, -1], df[, 1])
daily2monthly(z, FUN=sum, dates=1)
# 1959-10-01 1959-11-01 1959-12-01 1960-01-01 1960-02-01 1960-03-01 1960-04-01 
#    31440.0      411.9     1199.3     4373.0     1466.0     1904.0      741.0 

只有当您有多列数据时,daily2monthlydaily2monthly方法才能工作;在您的示例中,只有一个,这就是为什么函数返回该错误消息的原因。假设我们还有一列数据:

代码语言:javascript
复制
df$station_3 <- sample(1:1000, nrow(df))
daily2monthly(df, FUN=sum, dates=1)
#           flow_2 station_3
# Oct-1959 31440.0    132423
# Nov-1959   411.9    149305
# Dec-1959  1199.3    157622
# Jan-1960  4373.0    176413
# Feb-1960  1466.0    143373
# Mar-1960  1904.0    166102
# Apr-1960   741.0    141861
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39606580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档