gpt4 book ai didi

r - 创建包含逻辑值的 data.frame 的 xtable

转载 作者:行者123 更新时间:2023-12-02 00:29:31 25 4
gpt4 key购买 nike

我想使用 xtable 来显示一个简单的数据框,其中包含两个具有逻辑值的向量:

ia = c(TRUE, TRUE, FALSE)
ib = c(FALSE, TRUE, TRUE)
i.df = data.frame(ia, ib)
xtable(i.df)

这会产生:

\begin{table}[ht]
\begin{center}
\begin{tabular}{rll}
\hline
& ia & ib \\
\hline
1 & c(TRUE, TRUE, FALSE) & c(FALSE, TRUE, TRUE) \\
2 & c(FALSE, TRUE, TRUE) & c(TRUE, TRUE, FALSE) \\
3 & c(TRUE, TRUE, FALSE) & c(FALSE, TRUE, TRUE) \\
\hline
\end{tabular}
\end{center}
\end{table}

然而,我本以为:

\begin{table}[ht]
\begin{center}
\begin{tabular}{rll}
\hline
& ia & ib \\
\hline
1 & TRUE & FALSE \\
2 & TRUE & TRUE \\
3 & FALSE & FALSE \\
\hline
\end{tabular}
\end{center}
\end{table}

出于某种原因,xtable 在每一行中打印完整的逻辑向量,而不是每行只打印一个元素。这对任何人都有意义吗?还是我忽略了一些显而易见的事情?

最佳答案

这对我来说就像一个错误。 xtable.data.frame 中的相关行是:

logicals <- unlist(lapply(x, is.logical))
x[, logicals] <- as.character(x[, logicals])

那不是我对角色进行强制的方式。我可能会做更像的事情:

x[,logicals] <- lapply(x[,logicals],as.character)

我会考虑联系包作者。同时,您可以尝试自己预先将逻辑列转换为字符,因为这可能会同时解决问题。

编辑

Roman 在下面的评论提醒我,如果只有一个逻辑列,我建议的修复将不起作用,因为默认情况下会删除维度。应该是:

x[,logicals] <- lapply(x[,logicals,drop = FALSE],as.character)

我已就此事联系包维护者 (2012-04-22)。

关于r - 创建包含逻辑值的 data.frame 的 xtable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7591295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com