尝试在 R 中使用 spread() 函数时将数据框设为“宽”结构的问题

土豆

我正在尝试使用spread()函数来使我的 data.frame 变宽,但我有一些我什至不明白的错误......

我的数据框的某些部分是这样的:

> df
    NO2 Month
1    23    01
2    27    01
3    16    01
4    13    01
5    26    01
6    23    01
7    51    01
8    46    01
9    21    01
10   18    01
11   13    01
12   22    01
13   47    01
14   60    01
15   49    01
16   76    01
17   38    01
18   24    01
19   15    01
20   20    01
21   33    01
22   17    01
23   19    01
24   20    01
25   25    01
26   46    01
27   53    01
28   41    01
29   54    01
30   28    01
31   28    01
32   51    02
33   61    02
34   56    02
35   57    02
36   30    02
37   12    02
38   27    02
39   13    02
40   35    02
41   40    02
42   40    02
43   47    02
44   72    02
45   55    02
46   30    02
47   10    02
48   29    02
49   50    02
50   39    02
51   61    02
52   56    02
53   44    02
54   46    02
55   35    02
56   34    02
57   41    02
58   39    02
59   39    02
60   27    03
61   48    03
62   36    03
63   40    03
64   41    03
65   45    03
66   46    03
67   43    03
68   55    03 (...)

所以简单地说,我有一年中每一天的值,我想传播它们并每个月使用 boxplot(),以使其更清晰地阅读,但由于我无法传播它,因此我无法以正确的方式显示它

我正在尝试传播并重塑,但有一些错误:

df=data.frame(data)
df$Month=as.numeric(format(data$date,format="%m"))
df=df%>%select(c("NO2","Month"))

df=reshape(df,idvar=c("NO2","Month"),direction="wide",timevar="Month")
warnings() ## here i have first errors (will show them in below)

df=spread(df,Month,NO2)  ## have problems here also

df=spread(df,df$Month,df$NO2)  ## and here also

我对reshape()函数的第一个错误是每个“月”我都有这样的事情

1: In reshapeWide(data, idvar = idvar, timevar = timevar,  ... :
  multiple rows match for Month=1: first taken

对于第二个错误,我有这样的事情

Error in eval_tidy(enquo(var), var_env) : object 'Month' not found

第三次尝试我有这个

Error: "var" must evaluate to a single number or a column name, not NULL

有人能帮我吗?我不明白,我已经做了点差,这是我第一次接触这个问题..

罗纳克·沙阿

你可能需要

library(dplyr)
library(tidyr)

df %>%
   group_by(Month) %>%
   mutate(row = row_number()) %>%
   spread(Month, NO2)

这给你这个输出

#     row   `1`   `2`   `3`
#   <int> <int> <int> <int>
# 1     1    23    51    27
# 2     2    27    61    48
# 3     3    16    56    36
# 4     4    13    57    40
# 5     5    26    30    41
# 6     6    23    12    45
# 7     7    51    27    46
# 8     8    46    13    43
#.....

或者

df %>%
   group_by(Month) %>%
   mutate(row = row_number()) %>%
   spread(row, NO2)

这给了你这个

#  Month   `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8` ....
#  <int> <int> <int> <int> <int> <int> <int> <int> <int> ....
#1     1    23    27    16    13    26    23    51    46 ....
#2     2    51    61    56    57    30    12    27    13 ....
#3     3    27    48    36    40    41    45    46    43 ....

关键是当我们想要将数据帧从长转换为宽时,我们需要一个唯一的标识符。由于它不存在于您的原始数据框中,我们通过对每个进行分组来创建它,Month并使用row_number().


如果您想使用基数 R 获得相同的结果reshape,我们可以使用aveseq_along作为FUN参数添加相同的唯一标识符

df$row <- with(df, ave(NO2, Month, FUN = seq_along))
reshape(df,direction="wide",idvar ="Month", timevar = "row")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 R 中尝试 spread() 时对重复键求和

来自分类Dev

首次尝试在Rcpp中使用R函数时出错

来自分类Dev

R 尝试在 %>% 中使用 as.Date 时出错

来自分类Dev

尝试在R中使用jsonlite将数据框转换为分层json数组

来自分类Dev

在map()中使用spread()

来自分类Dev

尝试在C ++中使用结构时出错

来自分类Dev

尝试在C ++中使用结构时出错

来自分类Dev

我正在尝试在 gsub 函数中使用 as.character() 将“alpha”替换为 R 中的符号“α”

来自分类Dev

尝试在R中使用整洁的点尝试输入任意数量的分组变量和汇总变量时出错

来自分类Dev

尝试在Shiny中使用renderDataTable显示数据框时出错

来自分类Dev

尝试修改 r 中内置 kmeans 函数中使用的协方差矩阵

来自分类Dev

尝试从xgboost包在r中使用xgb.importance时出错

来自分类Dev

尝试通过网状包在R中使用Python Gekko时出错

来自分类Dev

尝试在 Pandas 中使用聚合 sum 函数

来自分类Dev

尝试在Linq中使用包含时出错

来自分类Dev

尝试在 ${ForEachIn} 中使用 File 时出错?

来自分类Dev

尝试使用R计算中位数时出现问题

来自分类Dev

R Tidyverse spread() 函数多位小数截断问题

来自分类Dev

在R中使用函数

来自分类Dev

尝试在单个函数中使用更新和创建的问题

来自分类Dev

在Java中使用For循环时尝试/捕获问题

来自分类Dev

尝试在Python Jupyter中使用.difference()函数时出错

来自分类Dev

尝试在 CI 中使用多选搜索数据时出错

来自分类Dev

获取UndefVarError:尝试在Julia中使用内部构造函数定义结构时未定义新

来自分类Dev

在R tidyr上的spread_上使用NSE

来自分类Dev

在R中使用mutate_at和max()函数对自己的数据进行了尝试。警告消息出现:max的所有参数均不丢失

来自分类Dev

我尝试使用ets函数,但是R找不到它

来自分类Dev

尝试使用R上的报告包生成注释时出错

来自分类Dev

尝试在 React 中使用状态存储数据以便以后可以访问时遇到问题

Related 相关文章

  1. 1

    在 R 中尝试 spread() 时对重复键求和

  2. 2

    首次尝试在Rcpp中使用R函数时出错

  3. 3

    R 尝试在 %>% 中使用 as.Date 时出错

  4. 4

    尝试在R中使用jsonlite将数据框转换为分层json数组

  5. 5

    在map()中使用spread()

  6. 6

    尝试在C ++中使用结构时出错

  7. 7

    尝试在C ++中使用结构时出错

  8. 8

    我正在尝试在 gsub 函数中使用 as.character() 将“alpha”替换为 R 中的符号“α”

  9. 9

    尝试在R中使用整洁的点尝试输入任意数量的分组变量和汇总变量时出错

  10. 10

    尝试在Shiny中使用renderDataTable显示数据框时出错

  11. 11

    尝试修改 r 中内置 kmeans 函数中使用的协方差矩阵

  12. 12

    尝试从xgboost包在r中使用xgb.importance时出错

  13. 13

    尝试通过网状包在R中使用Python Gekko时出错

  14. 14

    尝试在 Pandas 中使用聚合 sum 函数

  15. 15

    尝试在Linq中使用包含时出错

  16. 16

    尝试在 ${ForEachIn} 中使用 File 时出错?

  17. 17

    尝试使用R计算中位数时出现问题

  18. 18

    R Tidyverse spread() 函数多位小数截断问题

  19. 19

    在R中使用函数

  20. 20

    尝试在单个函数中使用更新和创建的问题

  21. 21

    在Java中使用For循环时尝试/捕获问题

  22. 22

    尝试在Python Jupyter中使用.difference()函数时出错

  23. 23

    尝试在 CI 中使用多选搜索数据时出错

  24. 24

    获取UndefVarError:尝试在Julia中使用内部构造函数定义结构时未定义新

  25. 25

    在R tidyr上的spread_上使用NSE

  26. 26

    在R中使用mutate_at和max()函数对自己的数据进行了尝试。警告消息出现:max的所有参数均不丢失

  27. 27

    我尝试使用ets函数,但是R找不到它

  28. 28

    尝试使用R上的报告包生成注释时出错

  29. 29

    尝试在 React 中使用状态存储数据以便以后可以访问时遇到问题

热门标签

归档