数据框中的采样元素

时间:2014-10-31 11:58:46

标签: r dataframe sample

我试图重新采样数据帧的元素。如果推荐的话,我可以使用其他数据结构,但我的理解是DF更适合组合字符串,数字等。

让我们说我的输入就是这个数据框:

16  x  y  z  2
11  a  b  c  1
.........

我想构建另一个数据结构(我拿,另一个df),如下所示:

16  x   y   z
16  x   y   z
11  a   b   c  
.........

我想我的主要问题是附加内容的方式,即列df [,1:4]。

提前致谢,p。

3 个答案:

答案 0 :(得分:3)

从您的描述中不清楚,但您想要的输出意味着您希望根据列1:4复制列5,这应该可以完成工作

df[rep(seq_len(nrow(df)), df[, 5]), -5]
#     V1 V2 V3 V4
# 1   16  x  y  z
# 1.1 16  x  y  z
# 2   11  a  b  c

答案 1 :(得分:2)

假设您从以下内容开始:

mydf
#   V1 V2 V3 V4 V5
# 1 16  x  y  z  2
# 2 11  a  b  c  1

然后,您可以使用我的" splitstackshape"中的expandRows。包,像这样:

library(splitstackshape)
expandRows(mydf, count = "V5")
#     V1 V2 V3 V4
# 1   16  x  y  z
# 1.1 16  x  y  z
# 2   11  a  b  c

默认情况下,该函数假定您正在基于现有列扩展数据集,但您可以轻松地将数字向量添加为count参数,并设置count.is.col = FALSE

答案 2 :(得分:0)

如果您想使用n数据框中的替换df行进行抽样:

df[sample(nrow(df), n, replace=TRUE), ]