【问题标题】:How to create blanks for certain entries in a data frame in R?如何为R中数据框中的某些条目创建空白?
【发布时间】:2019-03-01 17:12:36
【问题描述】:

假设我有一个数据框:

df <- data.frame(A = c(17.1, 0.0, 0.0, 0.0),
                 B = c(22.2, 0.0, 0.0, 0.0), 
                 C = c(2.4, 5.5, 1.8, 3.3))

     A    B   C
1 17.1 22.2 2.4
2  0.0  0.0 5.5
3  0.0  0.0 1.8
4  0.0  0.0 3.3

为了使用 View() 查看,我希望在我有 0.0 个元素的第 2-4 行有空白条目。这是所需的输出:

     A    B   C
1 17.1 22.2 2.4
2           5.5
3           1.8
4           3.3

执行此操作的一种方法是将 df 列转换为字符,并将“0.0”字符设置为“”。理想情况下,如果可能的话,我希望非零元素保持数字。有一个更好的方法吗?

【问题讨论】:

  • df[df==0.0] &lt;- ""
  • 如果您希望该列保持数字,则必须将 0.0 替换为 NAdf[df==0.0] &lt;- NA
  • 迈克,我想没有什么真正好的方法可以避免让 NA 出现。是的,我确实想保留 df 的数字性质,因为我将它用于其他计算。我的解决方案是为 View() 创建一个字符版本的 df 并保留数字版本进行计算。谢谢大家。

标签: r dataframe type-conversion


【解决方案1】:

您可以使用format 函数中的 zero.print 选项打印数据框。

print(format(df, zero.print=""))

     A    B   C
1 17.1 22.2 2.4
2           5.5
3           1.8
4           3.3

另一种选择是使用 knitr 包中的 kable 函数。

knitr::kable(df, format.args= list(zero.print = ""))


|    A|    B|   C|
|----:|----:|---:|
| 17.1| 22.2| 2.4|
|     |     | 5.5|
|     |     | 1.8|
|     |     | 3.3|

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    相关资源
    最近更新 更多