在R中的数据帧中重复列表
我有一张单子在R中的数据帧中重复列表,r,R,我有一张单子 k<-c(1,2,3,4) 我试着做:- > rep(k, each = 5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 然而,我无法得到预期的结果。有什么建议吗?这里有一个选项,通过使用as.list将向量转换为列表,将其更改为data.frame(as.data.frame和rep复制行 as.data.frame(as.list(k))[rep(1, 5),] # X1 X2 X3 X4 #1 1
k<-c(1,2,3,4)
我试着做:-
> rep(k, each = 5)
[1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
然而,我无法得到预期的结果。有什么建议吗?这里有一个选项,通过使用
as.list
将向量
转换为列表
,将其更改为data.frame(as.data.frame
和rep
复制行
as.data.frame(as.list(k))[rep(1, 5),]
# X1 X2 X3 X4
#1 1 2 3 4
#1.1 1 2 3 4
#1.2 1 2 3 4
#1.3 1 2 3 4
#1.4 1 2 3 4
或者另一种选择是对向量进行转置,得到一个行矩阵,
rep
复制行并转换为data.frame
as.data.frame(t(k)[rep(1, 5),])
在
tidyverse
中,一个选项是转换为tibble
,然后uncount
library(dplyr)
library(tidyr)
library(stringr)
as.list(k) %>%
set_names(str_c("X", seq_along(k))) %>%
as_tibble %>%
uncount(5)
# A tibble: 5 x 4
# X1 X2 X3 X4
# <dbl> <dbl> <dbl> <dbl>
#1 1 2 3 4
#2 1 2 3 4
#3 1 2 3 4
#4 1 2 3 4
#5 1 2 3 4
库(dplyr)
图书馆(tidyr)
图书馆(stringr)
as.列表(k)%>%
设置名称(str_c(“X”,沿(k)顺序))%>%
可存储%>%
解数(5)
#一个tibble:5x4
#x1x2x3x4
#
#1 1 2 3 4
#2 1 2 3 4
#3 1 2 3 4
#4 1 2 3 4
#5 1 2 3 4
这里有一个选项,通过使用as.list
将向量
转换为列表
,将其更改为data.frame(as.data.frame
和rep
复制行
as.data.frame(as.list(k))[rep(1, 5),]
# X1 X2 X3 X4
#1 1 2 3 4
#1.1 1 2 3 4
#1.2 1 2 3 4
#1.3 1 2 3 4
#1.4 1 2 3 4
或者另一种选择是对向量进行转置,得到一个行矩阵,
rep
复制行并转换为data.frame
as.data.frame(t(k)[rep(1, 5),])
在
tidyverse
中,一个选项是转换为tibble
,然后uncount
library(dplyr)
library(tidyr)
library(stringr)
as.list(k) %>%
set_names(str_c("X", seq_along(k))) %>%
as_tibble %>%
uncount(5)
# A tibble: 5 x 4
# X1 X2 X3 X4
# <dbl> <dbl> <dbl> <dbl>
#1 1 2 3 4
#2 1 2 3 4
#3 1 2 3 4
#4 1 2 3 4
#5 1 2 3 4
库(dplyr)
图书馆(tidyr)
图书馆(stringr)
as.列表(k)%>%
设置名称(str_c(“X”,沿(k)顺序))%>%
可存储%>%
解数(5)
#一个tibble:5x4
#x1x2x3x4
#
#1 1 2 3 4
#2 1 2 3 4
#3 1 2 3 4
#4 1 2 3 4
#5 1 2 3 4
使用数据表:
k = c(1,2,3,4)
n = 5 # Number of rows
df = data.table()
df = df[, lapply(1:length(k), function(x) rep(k[x], n))]
> df
V1 V2 V3 V4
1: 1 2 3 4
2: 1 2 3 4
3: 1 2 3 4
4: 1 2 3 4
5: 1 2 3 4
使用data.table:
k = c(1,2,3,4)
n = 5 # Number of rows
df = data.table()
df = df[, lapply(1:length(k), function(x) rep(k[x], n))]
> df
V1 V2 V3 V4
1: 1 2 3 4
2: 1 2 3 4
3: 1 2 3 4
4: 1 2 3 4
5: 1 2 3 4
purrr::map_dfc(k,rep,5)
##A tibble:5 x 4
#V1 V2 V3 V4
#
# 1 1 2 3 4
# 2 1 2 3 4
# 3 1 2 3 4
# 4 1 2 3 4
# 5 1 2 3 4
purrr::map\u dfc(k,rep,5)
##A tibble:5 x 4
#V1 V2 V3 V4
#
# 1 1 2 3 4
# 2 1 2 3 4
# 3 1 2 3 4
# 4 1 2 3 4
# 5 1 2 3 4
这应该是压缩选项这应该是压缩选项数据帧(t(矩阵(k,长度(k),5))
数据帧(t(矩阵(k,长度(k),5))