【问题标题】:Padding column values?填充列值?
【发布时间】:2012-07-18 12:24:58
【问题描述】:

在 R 2.14.2 中,我有一个矩阵:

mat1=matrix(c('A','','','B'))

我想填写空值,所以它变成这样:

mat2=matrix(c('A','','','B','A','A','A','B'),2,4,byrow=T)

换句话说,我如何填充空值?

[在 Excel 中,我将在 B 列中使用此公式:B2=if(isblank(A2),B1,A2),然后将其复制下来]。

如何在 R 中做到这一点?

亨克

【问题讨论】:

  • 为什么不使用这样的东西 mat1[nchar(mat1) == 0] (你可以用像 B1 列这样的向量替换 'A'在您的 Excel 示例中)

标签: r assign indices pad


【解决方案1】:

在包zoo 中使用na.locf。 locf 表示 last observation carried forward,这正是您正在做的:

library(zoo)

x <- c('A',NA,NA,'B')
na.locf(x)

[1] "A" "A" "A" "B"

但请确保您了解NA 和""(空字符串)之间的区别。在 Excel 中,使用空字符串来防止显示公式可能很有用,但在 R 中,最好使用 NA 来指示缺失值。

【讨论】:

  • [已解决] 非常感谢!我有 n/a 和空白,现在意识到我可以使用:mat=csv.read('myfile.csv',na.strings=c('n/a','')。换句话说,你可以将更多的值设置为 NA。
猜你喜欢
  • 2020-05-22
  • 2021-03-18
  • 2021-12-27
  • 2017-08-08
  • 1970-01-01
  • 2023-02-05
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
相关资源
最近更新 更多