Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用重复列表更改数据帧的维度_R_Dataframe - Fatal编程技术网

R 使用重复列表更改数据帧的维度

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软件

我在R下调整数据帧的大小时遇到问题。大约是个月和百分比。其大小为(29819,2)

我希望我的df看起来像这样:(很多行,180)

我尝试过重塑的方法

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