首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取每个变量的多个观察值

读取每个变量的多个观察值
EN

Stack Overflow用户
提问于 2013-11-07 08:01:06
回答 1查看 599关注 0票数 0

我有一个数据集,我不太清楚如何在R中处理。这是一份年数清单,然后是那些年份的事故费用。一年内可以发生零起事故,在这种情况下,线路会在一年后结束。或者,可能有多个事故,在这种情况下,事故是由一条线上的一个空格分隔的。

例如:

代码语言:javascript
复制
Year    amount (en millions de USD)
1954    2934.57     388.37      3328.94
1955     
1956    78.27

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 08:06:05

如果您使用read.table读取它,并指定fill = TRUEskip = 1,那么它应该将NA放入任何缺少的行元素中。例如:

代码语言:javascript
复制
dat = read.table('~/tmp/test.txt', skip = 1, fill = TRUE)
    V1      V2     V3      V4
1 1954 2934.57 388.37 3328.94
2 1955      NA     NA      NA
3 1956   78.27     NA      NA

我在文件~/tmp/test.txt中粘贴了您的示例。接下来,我将使用来自melt包的reshape2来更改数据的组织:

代码语言:javascript
复制
library(reshape2)
dat_melt = melt(dat, id.vars = c('V1'))
    V1 variable   value
1 1954       V2 2934.57
2 1955       V2      NA
3 1956       V2   78.27
4 1954       V3  388.37
5 1955       V3      NA
6 1956       V3      NA
7 1954       V4 3328.94
8 1955       V4      NA
9 1956       V4      NA

为了获得每年的事故费用:

代码语言:javascript
复制
library(plyr)
ddply(dat_melt, .(V1), summarise, sum_cost = sum(value, na.rm = TRUE))
    V1 sum_cost
1 1954  6651.88
2 1955     0.00
3 1956    78.27
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19830659

复制
相关文章

相似问题

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