R 使用重复列表更改数据帧的维度
我在R下调整数据帧的大小时遇到问题。大约是个月和百分比。其大小为(29819,2) 我希望我的df看起来像这样:(很多行,180) 我尝试过重塑的方法R 使用重复列表更改数据帧的维度,r,dataframe,R,Dataframe,我在R下调整数据帧的大小时遇到问题。大约是个月和百分比。其大小为(29819,2) 我希望我的df看起来像这样:(很多行,180) 我尝试过重塑的方法 reshape(df, direction = "wide", idvar = "y", timevar = "x" ) 我也尝试过矩阵方法,但对我的问题似乎不正确 matrix(unlist(t(df)),byrow=T,180) 谁能帮我找到这个吗?:) 您可以使用tidyr软件
reshape(df, direction = "wide", idvar = "y", timevar = "x" )
我也尝试过矩阵方法,但对我的问题似乎不正确
matrix(unlist(t(df)),byrow=T,180)
谁能帮我找到这个吗?:) 您可以使用
tidyr
软件包制作宽格式的数据集
library(tidyr)
df %>%
pivot_wider(month, names_from = month, values_from = pct, values_fn = list) %>%
unnest(everything())
例子
df%
透视图(月,名称从=月,值从=pct,值从=列表)%>%
unnest(所有内容())
#一个tibble:2x6
# `1` `2` `3` `4` `179` `180`
#
# 1 1 0.9 0.8 0.7 0.25 0.1
# 2 1 0.9 0.7 0.7 0.1 0.1
您可以使用tidyr
软件包制作宽格式的数据集
library(tidyr)
df %>%
pivot_wider(month, names_from = month, values_from = pct, values_fn = list) %>%
unnest(everything())
例子
df%
透视图(月,名称从=月,值从=pct,值从=列表)%>%
unnest(所有内容())
#一个tibble:2x6
# `1` `2` `3` `4` `179` `180`
#
# 1 1 0.9 0.8 0.7 0.25 0.1
# 2 1 0.9 0.7 0.7 0.1 0.1
不带外部库
df <- data.frame(month = rep(1:180, 2), pct = runif(180*2))
mat <- matrix(df[,"pct"], nrow=2, byrow=T)
没有外部库
df <- data.frame(month = rep(1:180, 2), pct = runif(180*2))
mat <- matrix(df[,"pct"], nrow=2, byrow=T)
df <- data.frame(month = rep(1:180, 2), pct = runif(180*2))
mat <- matrix(df[,"pct"], nrow=2, byrow=T)
mat <- rbind(1:180, mat)
rownames(mat) <- c("month", rep("pct", 2))
> print(mat[,1:5])
[,1] [,2] [,3] [,4] [,5]
month 1.0000000 2.0000000 3.0000000 4.00000000 5.0000000
pct 0.2458001 0.5481397 0.4923737 0.24772985 0.5815464
pct 0.7865478 0.4633333 0.5788609 0.06511907 0.8563442