akz*_*akz 2 compare r extract dataset
我从一个名为babies2009的数据集中提取了2个数据集(3个向量计数,名称,性别)
一个是女孩2009,包含所有女孩和其他男孩2009.我想知道男孩和女孩之间有什么相似的名字.
我试过这个
common.names = (boys2009$name %in% girls2009$name)
Run Code Online (Sandbox Code Playgroud)
当我尝试
babies2009[common.names, ] [1:10, ]
Run Code Online (Sandbox Code Playgroud)
我得到的只是女孩名字而不是俗名.
我已经确认这两个数据集确实包含男孩和女孩,分别采取10个样本...
boys2009 [1:10,]
girsl2009 [1:10,]
Run Code Online (Sandbox Code Playgroud)
我还能如何比较2个数据集并确定它们共享的值.谢谢,
common.names = (boys2009$name %in% girls2009$name)给你一个长度的逻辑向量length(boys2009$name).因此,当您尝试从更长的data.frame中进行选择时babies2009[common.names, ] [1:10, ],最终会产生废话.
解决方案:在正确的data.frame上使用该逻辑向量!
boys2009 <- data.frame( names=c("Billy","Bob"),data=runif(2), gender="M" , stringsAsFactors=FALSE)
girls2009 <- data.frame( names=c("Billy","Mae","Sue"),data=runif(3), gender="F" , stringsAsFactors=FALSE)
babies2009 <- rbind(boys2009,girls2009)
common.names <- (boys2009$name %in% girls2009$name)
> boys2009[common.names, ]$names
[1] "Billy"
Run Code Online (Sandbox Code Playgroud)