将零添加到 R 中前 x 行的列
Adding Zero to a column in first x rows in R
我正在创建一个用于预测目的的分类模型。我有几个 ext 文件,我将它们转换成一个包含多个列表(称为梳子)的大列表。然后我将大列表分解为一个单独的数据框,每个列表作为其自己的列(称为 BI)。因为每个列表可能包含不同数量的元素,所以更简单的参数 matrix(unlist(l), ncol=ncol) 不起作用。在审查备选方案时,我进行了修改以编译以下内容:
max_length <- max(sapply(comb,length))
BI<-sapply(comb, function(x){
c(x, rep(0, max_length - length(x)))
})
这将创建一个数据框,为每个列表分配一列,并为该列中的每个缺失元素分配一个零值。这些零显示在该列的末尾,但我希望它们位于该列的开头。这是当前输出的示例:
cola colb colc
2 2 2
1 1 0
4 0 0
我需要你的帮助来转换我的原始代码以生成以下格式:
acola colb colc
2 0 0
1 2 0
4 1 2
在串联中交换顺序可能就足够了 c
:
max_length <- max(sapply(comb, length))
BI <- sapply(comb, function(x){
c(rep(0, max_length - length(x)), x)
})
编辑:根据下面评论中的附加信息,这是一种以另一种方式修改代码的方法。这个想法是,只要你的第一种方法给出
你有一个合适的数据框,我们可以通过使用来规避这个问题
order
-函数。
max_length <- max(sapply(comb,length))
BI <- sapply(comb, function(x){
.zeros <- rep(0, max_length - length(x))
.rearange <- order(c(1:length(x), .zeros))
c(x, .zeros)[.rearange]
})
我已经测试过此代码适用于我的一个小测试示例
已创建,但我不确定此示例是否与您的相似
comb
...
如果这个修改后的方法不管用,那还是有可能的
首先使用您的原始代码创建数据框,然后
然后一次重新排序一列。
我正在创建一个用于预测目的的分类模型。我有几个 ext 文件,我将它们转换成一个包含多个列表(称为梳子)的大列表。然后我将大列表分解为一个单独的数据框,每个列表作为其自己的列(称为 BI)。因为每个列表可能包含不同数量的元素,所以更简单的参数 matrix(unlist(l), ncol=ncol) 不起作用。在审查备选方案时,我进行了修改以编译以下内容:
max_length <- max(sapply(comb,length))
BI<-sapply(comb, function(x){
c(x, rep(0, max_length - length(x)))
})
这将创建一个数据框,为每个列表分配一列,并为该列中的每个缺失元素分配一个零值。这些零显示在该列的末尾,但我希望它们位于该列的开头。这是当前输出的示例:
cola colb colc
2 2 2
1 1 0
4 0 0
我需要你的帮助来转换我的原始代码以生成以下格式:
acola colb colc
2 0 0
1 2 0
4 1 2
在串联中交换顺序可能就足够了 c
:
max_length <- max(sapply(comb, length))
BI <- sapply(comb, function(x){
c(rep(0, max_length - length(x)), x)
})
编辑:根据下面评论中的附加信息,这是一种以另一种方式修改代码的方法。这个想法是,只要你的第一种方法给出
你有一个合适的数据框,我们可以通过使用来规避这个问题
order
-函数。
max_length <- max(sapply(comb,length))
BI <- sapply(comb, function(x){
.zeros <- rep(0, max_length - length(x))
.rearange <- order(c(1:length(x), .zeros))
c(x, .zeros)[.rearange]
})
我已经测试过此代码适用于我的一个小测试示例
已创建,但我不确定此示例是否与您的相似
comb
...
如果这个修改后的方法不管用,那还是有可能的 首先使用您的原始代码创建数据框,然后 然后一次重新排序一列。