r - 如何在r中数据帧的每行不等长列的末尾添加一个数字
问题描述
如果我问错了,请对 R 表示歉意:
如何在不等长列的行的每一端添加一个数字?
示例代码:
x = 1:12
y = 1:10
z=1:8
attributes(df) = list(names = names(df),row.names=1:max(length(x), length(y),length(z)), class='data.frame')
df
# x y z
#1 1 1 1
#2 2 2 2
#3 3 3 3
#4 4 4 4
#5 5 5 5
#6 6 6 6
#7 7 7 7
#8 8 8 8
#9 9 9 <NA>
#10 10 10 <NA>
#11 11 <NA> <NA>
#12 12 <NA> <NA>
解决方案
首先,为了将长度不等的向量列表转换为 a data.frame
,用 's 填充向量NA
你的代码是不对的,这个更好。
x <- 1:12
y <- 1:10
z <- 1:8
df <- list(x = x, y = y, z = z)
n <- max(sapply(df, length))
df <- lapply(df, function(x){
c(x, rep(NA, n - length(x)))
})
df <- do.call(cbind.data.frame, df)
以下代码将用NA
value 替换每行中的第一个3
。
它使用循环遍历行apply
并更改具有至少一个NA
值的行。
df[] <- t(apply(df, 1, function(x){
if(anyNA(x)){
i <- min(which(is.na(x)))
x[i] <- 3
}
x
}))
df
# x y z
#1 1 1 1
#2 2 2 2
#3 3 3 3
#4 4 4 4
#5 5 5 5
#6 6 6 6
#7 7 7 7
#8 8 8 8
#9 9 9 3
#10 10 10 3
#11 11 3 NA
#12 12 3 NA
推荐阅读
- java - 用 | 分割字符串 分隔的
- django - django 与 mysql 模型字符串数组字段
- html - 如何在冒号属性名称中选择具有特定字符串的 NOT 元素
- php - 如何在自写的 php 代码中访问 wordpress 功能?
- laravel - Laravel Passport:自定义列名 SQL 错误
- c# - C# - 如何在尝试访问需要身份验证的目录时触发 Windows 安全性提示输入凭据?
- css - Mapbox:在保留地图控件的同时显示 div 覆盖
- java - ArrayAdapter SQLite 和 customListView
- azure-ad-b2c - Azure B2C - 自定义策略/添加注册步骤
- wordpress - 设置 SSL 证书后,css、脚本和图像未加载但未出现错误