Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与R中的'for'循环长度不同的向量:在数据帧中合并_R_For Loop_Dataframe - Fatal编程技术网

与R中的'for'循环长度不同的向量:在数据帧中合并

与R中的'for'循环长度不同的向量:在数据帧中合并,r,for-loop,dataframe,R,For Loop,Dataframe,我在R中有以下基本问题 我有一个for(k in 1:x){…}循环,它产生的数值向量的长度取决于k。 对于k的每个值,我生成一个数值向量 如果可能的话,我希望将它们收集为R中数据帧的行。换句话说,我想介绍一个数据帧datas.t for (k in 1:x) { data[k,] <- ... } > SEQ(1,k,1)< /> >取决于 k>代码>代码不起作用。 可以考虑使用 LDPEG从 P

我在R中有以下基本问题

我有一个
for(k in 1:x){…}
循环,它产生的数值向量的长度取决于
k
。 对于
k
的每个值,我生成一个数值向量

如果可能的话,我希望将它们收集为R中数据帧的行。换句话说,我想介绍一个数据帧
data
s.t

    for (k in 1:x) {
            data[k,] <- ...      
                     }

<> > <代码> SEQ(1,k,1)< /> >取决于<代码> k>代码>代码不起作用。

可以考虑使用<代码> LDPEG从<代码> PLYR 这里。
set.seed(123)
#k is the length of each result
k <- sample( 5 , 3 , repl = TRUE )
#[1] 2 4 3


# Make a list of vectors, each a sequence from 1:k
ll <- lapply( k , function(x) seq_len(x) )
#[[1]]
#[1] 1 2

#[[2]]
#[1] 1 2 3 4

#[[3]]
#[1] 1 2 3

# take our list and rbind it into a data.frame, filling in missing values with NA
ldply( ll , rbind)
#  1 2  3  4
#1 1 2 NA NA
#2 1 2  3  4
#3 1 2  3 NA
set.seed(123)
#k是每个结果的长度

K< P> >您可以考虑使用<代码> LDPEG从<代码> PLYR 这里。
set.seed(123)
#k is the length of each result
k <- sample( 5 , 3 , repl = TRUE )
#[1] 2 4 3


# Make a list of vectors, each a sequence from 1:k
ll <- lapply( k , function(x) seq_len(x) )
#[[1]]
#[1] 1 2

#[[2]]
#[1] 1 2 3 4

#[[3]]
#[1] 1 2 3

# take our list and rbind it into a data.frame, filling in missing values with NA
ldply( ll , rbind)
#  1 2  3  4
#1 1 2 NA NA
#2 1 2  3  4
#3 1 2  3 NA
set.seed(123)
#k是每个结果的长度

你能举个简单的例子说明你想要达到的目标吗?这个问题的措辞有点混乱,我不确定你所说的
如果
循环是什么意思:
我不认为这个问题等同于在一个数据帧中合并不同长度的向量;由于“如果”循环,每一步只知道一个矢量
。您是指一些
ifelse()
语句吗?我在你的代码中没有看到任何内容。好的,我将相应地编辑问题!谢谢你的反馈。另外,你能举一个简单的例子说明你想要实现什么吗?这个问题的措辞有点混乱,我不确定你所说的
如果
循环是什么意思:
我不认为这个问题等同于在一个数据帧中合并不同长度的向量;由于“如果”循环,每一步只知道一个矢量
。您是指一些
ifelse()
语句吗?我在你的代码中没有看到任何内容。好的,我将相应地编辑问题!谢谢你的反馈。另外,如果他想让向量成为数据帧的
,我想我们不需要对最终结果进行转置。这个
ldply(ll,rbind)
应该就可以了。@Mariam谢谢。我编辑过。顺便说一下,代码非常简洁。我明白了:使用列表可以避免维度的诅咒:-)。非常有帮助,谢谢!如果他希望向量是数据帧的
,我认为我们不需要对最终结果进行转置。这个
ldply(ll,rbind)
应该就可以了。@Mariam谢谢。我编辑过。顺便说一下,代码非常简洁。我明白了:使用列表可以避免维度的诅咒:-)。非常有帮助,谢谢!