我想将特定列的值向右移动,而NA保持在左侧.

df = data.frame(a = c("one", "two", "three", "four", "five"), 
                x = c("l", "m", NA, NA, "p"),
                y = c(NA, "b", "c", NA, NA),
                z = c("u", NA, "w", "x", "y"))

      a    x    y    z
1   one    l <NA>    u
2   two    m    b <NA>
3 three <NA>    c    w
4  four <NA> <NA>    x
5  five    p <NA>    y

这是我想要的输出

   a      x     y     z
1  one   <NA>   l    u
2  two   <NA>   m    b 
3  three <NA>   c    w
4  four  <NA> <NA>   x
5  five  <NA>   p    y

推荐答案

你可以在你的df上做一个行apply,不包括第一列,cNA与非NA项合并(按na.omit).

df[, -1] <- t(apply(df[, -1], 1, \(x) c(rep(NA, sum(is.na(x))), na.omit(x))))

     a    x    y z
1   one <NA>    l u
2   two <NA>    m b
3 three <NA>    c w
4  four <NA> <NA> x
5  five <NA>    p y

R相关问答推荐

如何在四进制仪表板值框中显示值(使用shiny 的服务器计算)

以R为基数排列奇数个图

如何使用R Shiny中的条件面板仅隐藏和显示用户输入,同时仍允许运行基础计算?

R Tidymodels textercipes-使用spacyR进行标记化-如何从生成的标记列表中删除标点符号

如果行和大于值,则过滤

如何在emmeans中计算连续变量的对比度

错误:非常长的R行中出现意外符号

如何在ggplot中标记qqplot上的点?

如何自定义3D散点图的图例顺序?

按多列统计频次

将多个列值转换为二进制

正在导出默认的RStudio主题,还是设置括号 colored颜色 ?

R -使用矩阵reshape 列表

变长向量的矢量化和

如何在使用因子时获得Sankey图的Scale_Fill_Viridis的全范围

计算来自单独分组的分幅的值的百分位数

如何使用grepl()在数据帧列表中 Select 特定字符串?

使用R、拼图和可能的网格包绘制两个地块的公共垂直线

通过比较来自多个数据框的值和R中的条件来添加新列

带有Bootswatch Cerulean主题的shiny 仪表板中的浏览&按钮可见性问题