我试图重新采样数据帧的元素。如果推荐的话,我可以使用其他数据结构,但我的理解是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。
答案 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), ]