如何解决数据帧内的嵌套数据帧-R
我有一个dataframe
,其中有4列,而最后一列本身就是dataframe
,如下所示。
我想将此数据帧嵌套为具有3个列的新数据帧:
tagname,localDateTime,Value
我可以使用一个简单的语句作为
DF_unnest <- unnest(DF,dataList)
outTagValues = DT_unnest%>%
select(tagname,value)
上面的语句简洁明了,就像一个咒语,但是我想知道是否还有另一种方法不涉及函数“ unnest”。
我在Spotfire中遇到了一个问题,即我们无法升级到上述声明有效的最新版本tidyr
,但是在先前版本的tidyr
中却失败了。
这里是dput
:
structure(list(entityInstanceID = c(NA,NA),attributeName = c(NA,tagname = c("LU_HIST_SVR.C874_1_DPTSlope","LU_HIST_SVR.C874_1_DPTTransSlope"
),dataList = list(structure(list(timeMillis = c(1591050080000,1591050252000,1591050425000,1591050598000,1591050771000,1591050944000,1591051116000,1591051289000,1591051462000,1591051635000,1591051808000,1591051980000,1591052153000,1591052326000,1591052499000,1591052672000,1591052844000,1591053017000,1591053190000,1591053363000,1591053536000
),localDateTime = c("2020-06-01T22:21:20","2020-06-01T22:24:12","2020-06-01T22:27:05","2020-06-01T22:29:58","2020-06-01T22:32:51","2020-06-01T22:35:44","2020-06-01T22:38:36","2020-06-01T22:41:29","2020-06-01T22:44:22","2020-06-01T22:47:15","2020-06-01T22:50:08","2020-06-01T22:53:00","2020-06-01T22:55:53","2020-06-01T22:58:46","2020-06-01T23:01:39","2020-06-01T23:04:32","2020-06-01T23:07:24","2020-06-01T23:10:17","2020-06-01T23:13:10","2020-06-01T23:16:03","2020-06-01T23:18:56"),value = c(-44.60666,54.13578,117.89097,82.92964,-66.7729,-114.94801,54.97848,91.05632,-8.16897,-71.04217,-88.72301,-139.31139,-50.58294,-8.78567,-8.39966,-54.48525,-110.99734,-25.96911,100.79548,-81.94934,-196.21104
),quality = c("GOOD","GOOD","GOOD")),class = "data.frame",row.names = c(NA,21L)),structure(list(timeMillis = c(1591050080000,1591053536000),value = c(-29.50907,133.56741,247.6122,-391.21768,-118.63472,67.12173,235.18224,-275.67072,223.91306,-28.00732,-368.20529,250.14159,-361.28854,408.80832,-115.09288,-453.42191,260.57016,261.98938,-148.97125,-393.78149,87.16415),21L)))),row.names = 3:4,class = "data.frame")
解决方法
我不知道这是否适用于您的tidyr
版本,但这可以满足您在我的计算机上的需求:
DF %>%
select(tagname,dataList) %>%
deframe() %>%
bind_rows(.id = "tagname") %>%
select(-timeMillis)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。