如何在r中不同列长度的现有数据帧中添加整数?

tshast2

抱歉,是否已经有人问过这个问题。我是R的新手。

我目前有一个带有1列的数据框。我正在尝试使用我拥有的不同整数来构建此数据框。

Apeaks
1
6
5

我有以下整数

Bpeaks = 2 1 6 12 10 5 8
Cpeaks = 2 1
Dpeaks = 4 1 0 9 20 4 18 11 9 6

我试图将整数(整数列表?)Bpeaks添加到数据框Apeaks作为列。同时,“峰值”列将只有3个值,而“峰值”列将只有7个值。我正在尝试将Apeaks的每一行的值0分配为Bpeaks的额外行数。

这就是我希望得到的结果

Apeaks Bpeaks
1      2
6      1
5      6
0      12
0      10
0      5
0      8

另外,当我添加一列较短的值时,行将自动分配为0。例如

Cpeaks = 2 1


Apeaks Bpeaks Cpeaks
1      2      2
6      1      1
5      6      0
0      12     0
0      10     0
0      5      0
0      8      0

当我添加另一列较长的列时,所有现有列的每个额外行的值都为0。例如

Dpeaks = 4 1 0 9 20 4 18 11 9 6

Apeaks Bpeaks Cpeaks Dpeaks
1      2      2      4
6      1      1      1
5      6      0      0
0      12     0      9
0      10     0      20
0      5      0      4
0      8      0      18
0      0      0      11
0      0      0      9
0      0      0      6

有没有办法做到这一点(代码会很有帮助)?感谢帮助!

罗纳克·沙

您可以使用此功能添加新列:

add_Data <- function(df, vec) {
   colname <- deparse(substitute(vec))
   new_row <- max(nrow(df), length(vec))
   new_df <- df[1:new_row, ,drop = FALSE]
   new_df[colname] <- c(vec, rep(NA, new_row - length(vec)))
   new_df[is.na(new_df)] <- 0
   rownames(new_df) <- NULL
   new_df
}

Bpeaks = c(2, 1, 6, 12, 10, 5, 8)
Cpeaks = c(2, 1)
Dpeaks = c(4, 1, 0, 9, 20, 4, 18, 11, 9, 6)

df <- add_Data(df, Bpeaks)
df

#  Apeaks Bpeaks
#1      1      2
#2      6      1
#3      5      6
#4      0     12
#5      0     10
#6      0      5
#7      0      8

新增中 Cpeaks

df <- add_Data(df, Cpeaks)
df
#  Apeaks Bpeaks Cpeaks
#1      1      2      2
#2      6      1      1
#3      5      6      0
#4      0     12      0
#5      0     10      0
#6      0      5      0
#7      0      8      0

新增Dpeaks

df <- add_Data(df, Dpeaks)
df
#   Apeaks Bpeaks Cpeaks Dpeaks
#1       1      2      2      4
#2       6      1      1      1
#3       5      6      0      0
#4       0     12      0      9
#5       0     10      0     20
#6       0      5      0      4
#7       0      8      0     18
#8       0      0      0     11
#9       0      0      0      9
#10      0      0      0      6

数据

我们从以下数据帧开始:

df <- structure(list(Apeaks = c(1L, 6L, 5L)), class = "data.frame", 
row.names = c(NA, -3L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R中的数据帧中添加不同长度的列?

如何基于R中多个变量的条件向现有数据帧添加新变量?

如何在pyspark aws emr中向现有数据框添加多个列?

如何在资产文件夹上的现有数据库中添加新列?

如何使用 Spark 中现有数据帧的列中的数据查询表?

是否有用于使用现有数据帧中的两列创建新数据帧的 R 函数?

在R中设置现有数据帧的每一列的单位

在R中添加2个长度不同的数据帧

如何使用另一列中的现有数据在 .csv 中添加列?

如何在R中的现有列中添加均值

如何在React-query中向现有数据添加新数据?

如何将用户输入中的列添加到现有数据框中?

如何在 R 中合并具有不同长度和两个条件的两个数据帧?

基于R中现有数据帧中观察值之间的链接的新数据帧

R:如何仅针对行子集和条件向现有数据帧添加新列

如何在 R 的数据框中添加新列并使用现有列?

如何基于现有数据帧中的dtypes创建新数据帧?

如何在MongoDb中将新值添加到现有数据中?

Google BQ-如何在表格中添加现有数据?

如何在字典中添加一个键?(来自现有数据)

如何在现有数据框中创建具有独立行值的列

如何一次将多个列添加到现有数据框中?

如何根据列值在现有数据框中添加新行?

将一列数据框添加到R中的现有数据框列中?

如何基于R中现有列中的循环计算数据帧中的新变量?

如何在R中的foreach()中更改数据帧某列的长度

如果数据帧长度不同,如何用R中另一个数据帧的值填充列?

比较R中不同长度的数据帧,并在不同的行中添加零

如何在Firebase实时数据库中向现有数据库添加数据?