gpt4 book ai didi

r - 将非 NA 单元格向左移动

转载 作者:行者123 更新时间:2023-12-04 10:28:12 25 4
gpt4 key购买 nike

我的数据集中有很多 NA,我需要将所有这些单元格(在行级别)向左移动。

示例 - 我的数据框:

    df=data.frame(x=c("l","m",NA,NA,"p"),y=c(NA,"b","c",NA,NA),z=c("u",NA,"w","x","y"))
df
x y z
1 l <NA> u
2 m b <NA>
3 <NA> c w
4 <NA> <NA> x
5 p <NA> y

我想将上面的数据框转换成这样:
      x    y  z
1 l u NA
2 m b NA
3 c w NA
4 x <NA> NA
5 p y NA

请帮忙。

谢谢。

最佳答案

您可以使用标准 apply功能:

df=data.frame(x=c("l","m",NA,NA,"p"),y=c(NA,"b","c",NA,NA),z=c("u",NA,"w","x","y"))
df2 = as.data.frame(t(apply(df,1, function(x) { return(c(x[!is.na(x)],x[is.na(x)]) )} )))
colnames(df2) = colnames(df)

> df
x y z
1 l <NA> u
2 m b <NA>
3 <NA> c w
4 <NA> <NA> x
5 p <NA> y
> df2
x y z
1 l u <NA>
2 m b <NA>
3 c w <NA>
4 x <NA> <NA>
5 p y <NA>

关于r - 将非 NA 单元格向左移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285215/

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