在 R 中按列表或向量重复数据帧列
Repeat of dataframe columns by list or vector in R
我有一个 df
(数据框):
df=data.frame(V1=c(10,20,10,20),V2=c(20,30,20,30),V3=c(20,10,20,10))
> df
V1 V2 V3
1 10 20 20
2 20 30 10
3 10 20 20
4 20 30 10
我有一个向量v<-list(1,3,2)
每个元素代表相关列的重复次数。
我想创建以下 df
和 V
数据框 dfV
:
> dfV
V1 V2_1 V2_2 V2_3 V3_1 V3_2
1 10 20 20 20 20 20
2 20 30 30 30 10 10
3 10 20 20 20 20 20
4 20 30 30 30 10 10
我们可以使用rep
df[rep(names(df), v)]
new_df <- NULL
for (i in 1:ncol(df)){
replicate_col <- replicate(v[i], df[,i])
new_df <- cbind(new_df, replicate_col)
}
我有一个 df
(数据框):
df=data.frame(V1=c(10,20,10,20),V2=c(20,30,20,30),V3=c(20,10,20,10))
> df
V1 V2 V3
1 10 20 20
2 20 30 10
3 10 20 20
4 20 30 10
我有一个向量v<-list(1,3,2)
每个元素代表相关列的重复次数。
我想创建以下 df
和 V
数据框 dfV
:
> dfV
V1 V2_1 V2_2 V2_3 V3_1 V3_2
1 10 20 20 20 20 20
2 20 30 30 30 10 10
3 10 20 20 20 20 20
4 20 30 30 30 10 10
我们可以使用rep
df[rep(names(df), v)]
new_df <- NULL
for (i in 1:ncol(df)){
replicate_col <- replicate(v[i], df[,i])
new_df <- cbind(new_df, replicate_col)
}