R 如何摆脱NA';他在cbind

R 如何摆脱NA';他在cbind,r,xml,cbind,R,Xml,Cbind,我正在解析XML-TEI文件。下面是向量,我有这个脚本: cat_xmlID <- getNodeSet(doc, "//ns:category/@xml:id", ns) cat_xmlID role=unlist(cat_xmlID[27:29]) context=unlist(cat_xmlID[9:25]) sphere=unlist(cat_xmlID[4:7]) sex=unlist(cat_xmlID[49:50]) n <- max(length(conte

我正在解析XML-TEI文件。下面是向量,我有这个脚本:

cat_xmlID <- getNodeSet(doc, "//ns:category/@xml:id", ns)
cat_xmlID

role=unlist(cat_xmlID[27:29])
context=unlist(cat_xmlID[9:25]) 
sphere=unlist(cat_xmlID[4:7])
sex=unlist(cat_xmlID[49:50]) 


n <- max(length(context), length(role), length(sphere), length(sex))
length(context) <-n 
length(role) <-n 
length(sphere) <-n 
length(sex) <-n 
catTab_ObjV=cbind(role, context, sphere, sex)
catTab_ObjV
当然,我有很多NAs。我不理解上述帖子和其他几篇帖子中关于如何摆脱NAs的解释——没有一篇文章对NA for
cbind
函数给出相关解释。 我必须说我是一个初学者在R

你能帮我吗?
提前,谢谢。

简短的回答是:你不能(去掉
cbind()
中的
NA
s),因为
cbind()
意味着输出一个矩形表(
data.frame
matrix
),这些表要求所有列的长度一致
NA
是最接近“无值”的值。还有
NULL
,但是
NULL
不能填充表的单元格

它似乎是一个
数据。框架
矩阵
在这里不是合适的数据结构,它可能是一个列表形式的不规则数组:
列表(角色=角色,上下文=上下文,球体=球体,性别=性别)

但您的评论更清楚地表明,真正的问题是关于显示,而不是其他任何问题,因此仅针对这一特定情况,因为列表不适合干净显示,所以让我们将其保留为矩阵

因此,这实际上取决于您打算如何在最终输出中显示数据(LaTeX?HTML?从
打印()复制粘贴
?)
例如,您可以使用空字符串“hacky”替换
NA
”,例如:
catTab_ObjV[is.NA(catTab_ObjV)]您可以发布样本数据吗?我已经添加了样本数据。您想要的输出是什么?它是一个矩形表吗?如果是,您想要什么来代替NAs?或者它是一个参差不齐的数组,在这种情况下,用list(role=role,context=context,…)替换cbind(…)?我不想要任何值,所以没有NA。此模板的目标是列出每个类别(角色、上下文、领域、性别)的属性。所以NA在这里没有任何意义。它将不用于计算,而仅用于显示我将用于分析调查的内容。如果我的回答解决了您的问题,请您将其标记为已接受。感谢您的回复,并对我的迟交回复表示歉意。我想在屏幕上打印,所以我使用
write.csv2
,但我仍然有NA。我已经尝试过你的解决方案,但它不起作用,可能是因为它是自制的或乳胶。
write.csv2
有一个
na
参数,默认为
“na”
。使用
write.csv2(catTab_ObjV,“path/to/csv”,na=“”)
我遵循您的示例:
write.csv2(catTab_ObjV,file=“categories”template of objective variables taxonomy.csv”,na=“”)
,但我仍然有
“na”
如何打开生成的csv?我道歉!我首先查看了R的数据全局环境。但在阅读了您的最后一个问题后,我用Excel打开了它。它起作用了!!非常感谢。
    role          context        sphere      sex        
id "active"      "ritual"       "inside"    "male_Sx"  
id "passive"     "battle"       "outside"   "female_Sx"
id "both_active" "singleCombat" "unknown_S" NA         
   NA            "prayer"       "B_ctx_S"   NA         
   NA            "assembly"     NA          NA         
   NA            "feast"        NA          NA         
   NA            "wedding"      NA          NA         
   NA            "burial"       NA          NA         
   NA            "seduction"    NA          NA         
   NA            "meeting"      NA          NA         
   NA            "complaint"    NA          NA         
   NA            "lawsuit"      NA          NA         
   NA            "threat"       NA          NA         
   NA            "revenge"      NA          NA         
   NA            "visit"        NA          NA         
   NA            "unknown_C"    NA          NA         
   NA            "B_ctx_C"      NA          NA  
library(xtable)

foo <- c("a", "b", "c")
bar <- c("d", "e", NA)
tab <- cbind(foo, bar)
tab
#      foo bar
# [1,] "a" "d"
# [2,] "b" "e"
# [3,] "c" NA 

print.xtable(xtable(tab), type = "html")
# <!-- html table generated in R 3.3.2 by xtable 1.8-2 package -->
# <!-- Sat Mar 18 11:54:06 2017 -->
# <table border=1>
# <tr> <th>  </th> <th> foo </th> <th> bar </th>  </tr>
# <tr> <td align="right"> 1 </td> <td> a </td> <td> d </td> </tr>
# <tr> <td align="right"> 2 </td> <td> b </td> <td> e </td> </tr>
# <tr> <td align="right"> 3 </td> <td> c </td> <td>  </td> </tr>
# </table>