所以我对R来说还是个新手,我在抓住它时遇到了一些麻烦。我想要做的是将数据分类为几十年,以便我可以分析每十年的平均值。到目前为止,这是我尝试过的:
fred$decade = cut(as.numeric(format(fred$DATE, "%Y")),breaks=seq(1940, 2020, 10))
format.default中的错误(结构(as.character(x),names = names(x), dim = dim(x),: 无效的'trim'参数
以下是我正在使用的数据的一部分:我正在查看自1948年以来的每月直到2016年1月9日的CPI数据。我希望从那以后得到每十年的平均CPI:
DATE CPI
8/1/49 23.7
9/1/49 23.75
10/1/49 23.67
11/1/49 23.7
12/1/49 23.61
1/1/50 23.51
2/1/50 23.61
3/1/50 23.64
4/1/50 23.65
5/1/50 23.77
6/1/50 23.88
7/1/50 24.07
8/1/50 24.2
当我使用它时,我总是会收到一条错误消息。我似乎无法弄清楚我做错了什么。我查看了我的数据以确保它没问题。谢谢你的帮助!
答案 0 :(得分:2)
将message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("abc@abc.com"));
message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("abc@def.com"));
message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("ghi@abc.com"))
视为
dput(stsample)
你可以试试像
这样的东西structure(list(Date = structure(c(8L, 10L, 11L, 12L, 13L, 1L,
2L, 3L, 4L, 5L, 6L, 7L, 9L), .Label = c("01-01-1950", "02-01-1950",
"03-01-1950", "04-01-1950", "05-01-1950", "06-01-1950", "07-01-1950",
"08-01-1949", "08-01-1950", "09-01-1949", "10-01-1949", "11-01-1949",
"12-01-1949"), class = "factor"), CPI = c(23.7, 23.75, 23.67,
23.7, 23.61, 23.51, 23.61, 23.64, 23.65, 23.77, 23.88, 24.07,
24.2)), .Names = c("Date", "CPI"), class = "data.frame", row.names = c(NA,
-13L))
请注意,中断仅适用于日期的stsample$Date <- as.Date(stsample$Date, "%d-%m-%Y")
stsample$year<-as.numeric(format(stsample$Date, "%Y"))
stsample$decade = cut(stsample$year, seq(from = 1940, to = 2020, by = 10))
部分,而不适用于整个对象。如果您有日期时间对象,则可能需要查看year
答案 1 :(得分:2)
你也可以试试这个(用一些随机生成的数据显示输出):
# assuming 40-49 is the decade 40s
fred$DECADE <- 10*as.integer(as.numeric(substring(as.character(fred$DATE), 7, 8)) / 10)
head(fred)
DATE CPI DECADE
1 08/01/49 23.41955 40
2 09/01/49 26.99772 40
3 10/02/49 29.53724 40
4 11/02/49 19.84247 40
5 12/03/49 26.75672 40
6 01/03/50 30.97788 50
# mean value for each DECADE
aggregate(CPI~DECADE, data=fred, FUN=mean)
DECADE CPI
1 40 25.31074
2 50 25.27004
3 60 24.72269