2014-03-27 39 views
0

我与GTD数据库 - 工作可以在(http://www.start.umd.edu/gtd/contact/合并数据帧/是否有更简单的方法来编写此代码?

下载我只有对美国数据的一个子集,而我所要做的就是添加上,如果在政党信息权力是共和党人或民主党人。这些年我使用来自http://candychang.com/?p=4346

我的R非常基本的知识,使得我这个,

gtd<- read.csv("gtd.csv") 
US <- subset(x=gtd, country_txt== "United States") 
Republican <- subset(x=US, iyear %in% c(1971:1976, 1981:1992, 2001:2008)) 
Democrat <- subset(x=US, iyear %in% c(1977:1980, 1993:2000, 2009:2011)) 
install.packages("plyr") 
require(plyr) 
republicanattacks <- ddply(Republican, .(iyear), "nrow") 
democratattacks<- ddply(Democrat, .(iyear), "nrow") 
transform(republicanattacks, new="Republican") 
transform(democratattacks, new="Democrat") 
rbind(republicanattacks,democratattacks) #does not work- Error in match.names(clabs, names(xi)) : 

名称不匹配以前的名字

我想基本上只是坚持这些数据帧所以我可以制作一张图表,但我一直无法做到这一点。最终,我的目标是以图形方式显示共和党/民主党人的攻击次数,以显示比较结果,我不想在单独的图表上做到这一点 - 我相信有一种简单的方法可以合并这些,但我的方式尝试过没有工作。我还想知道是否有一种更简单的方法可以像使用For循环或其他东西一样从US子集开始执行此操作,但我对for循环很不熟悉。但基本上,我只需要知道如何合并这些..

+0

你应该使用dplyr包相反,它会快很多。合并会更有用而不是'rbind'吗? – JeremyS

+0

不确定数据结构,但可以添加用于区分数据点颜色的分类变量(因子)。你最初可以将它设置为“共和党”,然后在你拥有“子集”的地方使用“which”来为这些年份分配“民主党”。 – beroe

+0

如果你发布一个人们可以玩的微小的,易于复制粘贴的玩具数据集,你就更有可能收到有用的答案。现在,我认为很多人都不愿意在网页上注册,以便能够访问您的数据。还张贴您想要的输出。请检查这些链接的一般想法,以及如何在R:[** here **](http://stackoverflow.com/help/mcve),[** here **](http:// www .sscce.org /)和[** here **](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610)。 – Henrik

回答

0

尝试

library(plyr) 

rbind.fill(republicanattacks,democratattacks) 

希望它可以帮助...

相关问题