r - R中的数据转换

标签 r transform

我正在寻找一个用于转换数据框的 R 示例。 我有一个包含 100 行的数据框(每个美国州 2 行)

     Status  State Count 
     default    AK   15
     nodefault  AK   71
     default    AL   56
     nodefault  AL  428
     default    AR   33
     nodefault  AR  228
     default    AZ  132
     nodefault  AZ  801
     ......
     ......

我想要的转换是一个有 50 行的数据框:

      State Count1  Count2 
        AK   15       71
        AL   56      428
        AR   33      228
        AZ  132      801
       .... 

您能建议任何 R 函数来进行这种转换吗?

我尝试使用“聚合”功能。但是,它需要一个参数,例如:'mean' OR 'Sum',我不想要 mean 或 sum。

感谢您提供的任何帮助。

最佳答案

这里有几种可能性:

1) xtabs

> xtabs(Count ~ State + Status, DF)
     Status
State default nodefault
   AK      15        71
   AL      56       428
   AR      33       228
   AZ     132       801

2) 点按

> tapply(DF[[3]], DF[2:1], c)
     Status
State default nodefault
   AK      15        71
   AL      56       428
   AR      33       228
   AZ     132       801

3) reshape

> reshape(data = DF, dir = "wide", idvar = "State", timevar = "Status")
  State Count.default Count.nodefault
1    AK            15              71
3    AL            56             428
5    AR            33             228
7    AZ           132             801
reshape2 包中的

dcast 是另一种可能的工作方式,有点像 reshape

4) read.zoo

> library(zoo)
>
> read.zoo(DF, index = "State", split = "Status", FUN = identity)
   default nodefault
AK      15        71
AL      56       428
AR      33       228
AZ     132       801

5) 拆分/合并

> do.call("merge", c(unname(split(DF, DF$Status)), by = 2))[c(-2, -4)]
  State Count.x Count.y
1    AK      15      71
2    AL      56     428
3    AR      33     228
4    AZ     132     801

这也可以表示为:

s <- split(DF, DF$Status)
merge(s[[1]], s[[2]], by = 2)[c(-2, -4)]

with(split(DF, DF$Status), merge(default, nodefault, by = 2))[c(-2, -4)]

添加解决方案 5.

关于r - R中的数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22131069/

相关文章:

r - 如何在不强制转换为数字的情况下迭代日期列表?

html - 在 Chrome 上运行良好的 Css 3D 动画在 Safari 上不起作用

c++ - 找不到 'std::transform..."的匹配项

css - IE8 和其他所有内容之间的 CSS 旋转的一致来源?

css - webkit-transform 破坏了谷歌标记

r - 为什么在 R 中使用 file.create 创建多个目录会导致 Windows 中的 'path' 参数无效

r - 如何将一年中的某一天和年份转换为标准日期格式

r - 向 GEE 添加交互 - 模型矩阵排名不足

r - 使用 stargazer 进行生活并出现错误

Python: Pandas, Dataframe, 将一列数据转换成二维数据格式