如何解决根据现有数据帧有条件地将其合并为一个数据帧
我有仅根据特定条件存在的数据帧,因此有时并非每一个可能的数据帧都存在。它基于数据集的一列中有多少个唯一值。我想拥有可以随时间更新的通用代码,以便随着时间的推移存在更多唯一值,我可以将它们添加到集团数据框中。以下代码创建包含唯一值的对象。
x <- month(data$created_at)
y <- unique(month(data$created_at))
这是将根据y的值创建数据帧的代码
if (any(y == 4)) {
april<-data.frame(get_nrc_sentiment(data2[x==4])))
}
if (any(y == 3)) {
march_sentiment<-data.frame(get_nrc_sentiment(data2[x==3])))
}
if (any(y == 2)) {
february_sentiment<-data.frame(get_nrc_sentiment(data2[x==2])))
}
#january
if (any(y == 1)) {
january_sentiment<-data.frame(get_nrc_sentiment(data2[x==1])))
}
如果行军中的某些数据值不存在,而其他行中的数据值存在,那么我该如何编写代码,以便仅使用存在的情感创建一个大数据框
作为参考,这是我现在正在做的事情
monthly_sentiment<-data.frame(january_sentiment,february_sentiment,march_sentiment,april_sentiment,may_sentiment,june_sentiment,july_sentiment,august_sentiment)
解决方法
由于没有显示示例数据集或通过“合并”或“合并”告诉我们的含义,因此很难确切知道您的需求。
但是考虑到您所说的话,一种方法可能是将数据帧分配给单个列表(如果数据帧存在),而在数据帧不存在时不执行任何操作。然后,您可以使用Reduce
和merge
或您喜欢的机制合并列表中的所有数据集。
datasets <- list()
datasets[['january']] <- data.frame(idx = 1:2,jan = 1:2)
datasets[['february']] <- data.frame(idx = 2:3,feb = 2:3)
datasets[['april']] <- data.frame(idx = 0:1,apr = 0:1)
Reduce(function(x,y) merge(x,y,all=TRUE),datasets)
#> idx jan feb apr
#> 1 0 NA NA 0
#> 2 1 1 NA 1
#> 3 2 2 2 NA
#> 4 3 NA 3 NA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。