R 扩展数据帧

R 扩展数据帧,r,dplyr,tidyverse,tidyr,spread,R,Dplyr,Tidyverse,Tidyr,Spread,我有以下dataframe/tibble示例: structure(list(name = c("Contents.Key", "Contents.LastModified", "Contents.ETag", "Contents.Size", "Contents.Owner", "Contents.StorageClass", "Contents.Bucket", "Contents.Key", "Contents.LastModified", "Contents.ETag" ), val

我有以下
dataframe
/
tibble
示例:

structure(list(name = c("Contents.Key", "Contents.LastModified", 
"Contents.ETag", "Contents.Size", "Contents.Owner", "Contents.StorageClass", 
"Contents.Bucket", "Contents.Key", "Contents.LastModified", "Contents.ETag"
), value = c("2019/01/01/07/556662_cba3a4fc-cb8f-4150-859f-5f21a38373d0_0e94e664-4d5e-4646-b2b9-1937398cfaed_2019-01-01-07-54-46-064", 
"2019-01-01T07:54:47.000Z", "\"378d04496cb27d93e1c37e1511a79ec7\"", 
"24187", "e7c0d260939d15d18866126da3376642e2d4497f18ed762b608ed2307778bdf1", 
"STANDARD", "vfevvv-edrfvevevev-streamed-data", "2019/01/01/07/556662_cba3a4fc-cb8f-4150-859f-5f21a38373d0_33a8ba28-245c-490b-99b2-254507431d47_2019-01-01-07-54-56-755", 
"2019-01-01T07:54:57.000Z", "\"df8cc7082e0cc991aa24542e2576277b\""
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
我想使用
tidyr::spread()
函数分散名称列,但没有得到想要的结果

df %>% tidyr::spread(key = name, value = value)
我得到一个错误:

错误:行的标识符重复:

还尝试了
melt
功能,结果相同

我使用aws.S3::get_bucket()函数连接到S3,并尝试将其转换为数据帧。我知道有一个
aws.s3::get_bucket_df()
函数应该可以完成这项工作,但它不起作用(您可以查看我的

在获得存储桶列表后,我取消了它的列表并运行
enframe
命令。
请告知。

您可以先介绍一个新专栏(介绍
NA
s,将不得不处理它们)


预期的结果是什么?第2列看起来有点凌乱,可能需要清理。@NelsonGon谢谢你的回答,请告诉我为什么我的解决方案不能立即展开很多!请解释为什么我的解决方案不起作用?为什么我不能直接展开它?因为当你直接展开时,你有例如Content.Etag在3,10处具有类似的值。
spread
的工作方式是,必须具有唯一的行值才能正确传播数据。您建议如何处理NA并将其折叠?@nelsongon坦率地说,这取决于目标。但是,在这种情况下,使用0似乎是合适的。您可以像这样使用
spread
中的fill参数:
排列(名称、值、填充=0)
由rbindlist(dfBucket)解决!
df %>% 
mutate(RN=row_number()) %>% 
  group_by(RN) %>% 
  spread(name,value)