2017-07-07 28 views
0
Sex   cat dog horse 
Male YES NO NO 
Female YES YES NO 
Male YES YES NO 
Female NO NO NO 
Male NO NO NO 
Male NO YES YES 
Female YES YES YES 
Female YES NO YES 
Male NO NO NO 
Male YES NO YES 
Male NA NO NO 
Female NA NO YES 
Female NO YES NO 
Female NA NA YES 
Female YES NA NO 
Male YES NA YES 
Male NO NA NO 
Male NO NA YES 
Male NA NA NA 





data$animals <- paste(c(data$cat, data$dog, data$horse), collapse = "") 

CrossTable(data$animals,data$sex, prop.chisq = FALSE, prop.t=FALSE, chisq = T)试图从两列中的数据合并到值一列进行分析

我公司目前已经建立了像这样我的数据和我想要做的是合并所有YES,NO,和“拥有一个____”中的NA来创建一个新列,告诉我“拥有一只动物”并具有相同的输入(YES,NO或NA)。 我试过“贴”,但它似乎并没有提供我想要的东西

谢谢你的任何帮助,你可以提供!

我的最终目标将是这样的

sex owns animals 
Male YES 
Female YES 
Male YES 
Female NA 
Male NA 
Male NO 
Female NO 
Female YES 
Male YES 
Male YES 
Male NA 
Female NO 
Female NO 
Female NA 
Female YES 
Male NO 
Male YES 
Male NA 
Male NA 
+1

不要发布数据的图像,包括适当的[重复的例子(https://stackoverflow.com/questions/5963269/how制作一个很好的重现性示例)并给出所需的输出,以便可以测试可能的解决方案。你说你试过粘贴和收集,所以包括你试过的代码,并描述它究竟是如何工作的。 – MrFlick

+1

你能否显示你想要的输出?请解释“合并”意味着什么 –

+0

我认为你的预期输出结果不清晰 – akrun

回答

5
df <- read.table(text="Male YES NO NO 
Female YES YES NO 
       Male YES YES NO 
       Female NO NO NO 
       Male NO NO NO 
       Male NO YES YES 
       Female YES YES YES 
       Female YES NO YES 
       Male NO NO NO 
       Male YES NO YES 
       Male NA NO NO 
       Female NA NO YES 
       Female NO YES NO 
       Female NA NA YES 
       Female YES NA NO 
       Male YES NA YES 
       Male NO NA NO 
       Male NO NA YES 
       Male NA NA NA", header=F) 

df$animal <- apply(df[, 2:4], 1, function(x) any(x=="YES")) 
df$animal <- ifelse(df$animal, "YES","NO") 
df 

#  V1 V2 V3 V4 animal 
# 1 Male YES NO NO YES 
# 2 Female YES YES NO YES 
# 3 Male YES YES NO YES 
# 4 Female NO NO NO  NO 
# 5 Male NO NO NO  NO 
# 6 Male NO YES YES YES 
# 7 Female YES YES YES YES 
# 8 Female YES NO YES YES 
# 9 Male NO NO NO  NO 
# 10 Male YES NO YES YES 
# 11 Male <NA> NO NO <NA> 
# 12 Female <NA> NO YES YES 
# 13 Female NO YES NO YES 
# 14 Female <NA> <NA> YES YES 
# 15 Female YES <NA> NO YES 
# 16 Male YES <NA> YES YES 
# 17 Male NO <NA> NO <NA> 
# 18 Male NO <NA> YES YES 
# 19 Male <NA> <NA> <NA> <NA> 
+0

我喜欢你如何在'any()'中不使用'na.rm',所以第11行仍然是NA,但第12行是是的。 – wibeasley

相关问题