【发布时间】:2018-01-25 10:42:43
【问题描述】:
更新数据集:
DateTime Object.Name Object.Value
6/22/2017 21:11 DaHum Normal
6/22/2017 12:59 DaHum Alarm
6/16/2017 18:48 DaHum Normal
6/16/2017 14:33 DaHum Alarm
6/15/2017 18:46 DaHum Normal
7/28/2017 8:00 ZON-1 58.56
7/28/2017 8:00 MA-H 51.66
7/28/2017 8:00 ZON-2 72.00
7/28/2017 8:00 ZON-4 70.00
7/28/2017 8:00 ZON-3 72.00
7/28/2017 7:45 PH 0.00
7/28/2017 7:45 OA 79.50
7/28/2017 7:45 SP 50.00
7/28/2017 7:45 ZON-1 32.47
7/28/2017 7:45 ZON-3 70.00
7/28/2017 7:45 CC 55.81
您好,我有以下格式的数据框:
我需要将Object_Name 下的所有值转换为列名。 Object_Names 有重复的值,即the same Name is repeated with different timestamp.
Object_Value 的数据类型是字母数字,所以在 R 中传递时,它要么是 Factor or a Character
因此基于时间戳,我需要转换所有Object_Name row values to column name
Date Time Object_Name Object_Value
7/28/2017 08:00 A1 58.56
7/28/2017 08:00 A2 51.66
.
.
.
7/28/2017 08:30 A1 60.2
7/28/2017 08:30 A2 65.2
.
.
7/30/2017 08:30 B1 On
7/30/2017 09:30 B1 Off
我需要output 如下:
Date Time A1 A2 B1
7/28/2017 08:00 58.5 51.6 -
7/28/2017 08:30 60.2 65.2 -
7/30/2017 08:30 - - On
7/30/2017 09:30 - - Off
到目前为止的代码:
JCI <- read.csv("JCIS2.csv",header = T, stringsAsFactors=FALSE)
JCI$Object.Value <- as.numeric(JCI$Object.Value)
library(reshape2)
JCI_Reshape <- dcast(JCI_Unique, Date...Time ~ Object.Name, value.var = "Object.Value", fun.aggregate = mean)
【问题讨论】:
-
只使用
dcastfromreshape2ordata.tableorspreadfromtidyr -
我尝试过使用 dcast,如果我将 object_Value 转换为数字类型。我得到非数字的 NA。如果我将它用作字符变量,我会得到所有的 NA。并且没有聚合函数(平均值)我得到错误,。有没有我可以使用的聚合函数
标签: r dataframe rows reshape2 col