相关疑难解决方法(0)

转置数据框

我需要转置一个大型数据框,所以我使用:

df.aree <- t(df.aree)
df.aree <- as.data.frame(df.aree)
Run Code Online (Sandbox Code Playgroud)

这是我获得的:

df.aree[c(1:5),c(1:5)]
                         10428        10760        12148        11865
    name                M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04    
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要消除的新列名称(10428,10760,12148,11865),因为我需要将第一行用作列名.

我试过col.names()功能,但我没有得到我需要的东西.

你有什么建议吗?

编辑

谢谢你的建议!使用它我获得:

df.aree[c(1:5),c(1:5)]
                        M231T3       M961T5       M960T6      M231T19
    GS04.A        5.847557e+03 0.000000e+00 3.165891e+04 2.119232e+04
    GS16.A        5.248690e+04 4.047780e+03 3.763850e+04 1.187454e+04
    GS20.A        5.370910e+03 9.518396e+03 3.552036e+04 1.497956e+04
    GS40.A        3.640794e+03 1.084391e+04 4.651735e+04 4.120606e+04
    GS44.A        1.225938e+04 2.681887e+03 1.154924e+04 4.202394e+04
Run Code Online (Sandbox Code Playgroud)

现在我需要在因子列中转换行名(GS ..)....

r dataframe

95
推荐指数
4
解决办法
24万
查看次数

在R中转置data.frame并将其中一列设置为新转置表的标头的最佳方法是什么?

在R中转置data.frame并将其中一列设置为新转置表的标头的最佳方法是什么?我编写了一种方法来执行此操作.因为我还是R的新手.我想建议改进我的代码以及更像R的替代品.不幸的是,我的解决方案也有点硬编码(即新的列标题位于某个位置).

# Assume a data.frame called fooData
# Assume the column is the first column before transposing

# Transpose table
fooData.T <- t(fooData)

# Set the column headings
colnames(fooData.T) <- test[1,]

# Get rid of the column heading row
fooData.T <- fooData.T[2:nrow(fooData.T), ]

#fooData.T now contains a transposed table with the first column as headings
Run Code Online (Sandbox Code Playgroud)

transpose r dataframe

18
推荐指数
1
解决办法
5万
查看次数

转置数据帧

周末愉快.

我一直试图复制R中这篇博客文章的结果.我正在寻找一种不使用转换数据的方法t,最好使用tidyrreshape.在下面的示例中,metadata通过转置获得data.

metadata <- data.frame(colnames(data), t(data[1:4, ]) )
colnames(metadata) <- t(metadata[1,])
metadata <- metadata[-1,]
metadata$Multiplier <- as.numeric(metadata$Multiplier)
Run Code Online (Sandbox Code Playgroud)

虽然它实现了我想要的东西,但我发现它并不那么不熟练.是否有任何有效的工作流程来转置数据框?

输入数据

data <- structure(list(Series.Description = c("Unit:", "Multiplier:", 
"Currency:", "Unique Identifier: "), Nominal.Broad.Dollar.Index. = c("Index:_1997_Jan_100", 
"1", NA, "H10/H10/JRXWTFB_N.M"), Nominal.Major.Currencies.Dollar.Index. = c("Index:_1973_Mar_100", 
"1", NA, "H10/H10/JRXWTFN_N.M"), Nominal.Other.Important.Trading.Partners.Dollar.Index. = c("Index:_1997_Jan_100", 
"1", NA, "H10/H10/JRXWTFO_N.M"), AUSTRALIA....SPOT.EXCHANGE.RATE..US..AUSTRALIAN...RECIPROCAL.OF.RXI_N.M.AL. = c("Currency:_Per_AUD", 
"1", "USD", "H10/H10/RXI$US_N.M.AL"), SPOT.EXCHANGE.RATE...EURO.AREA. = c("Currency:_Per_EUR", 
"1", "USD", "H10/H10/RXI$US_N.M.EU"), NEW.ZEALAND....SPOT.EXCHANGE.RATE..US..NZ...RECIPROCAL.OF.RXI_N.M.NZ.. = c("Currency:_Per_NZD", 
"1", "USD", "H10/H10/RXI$US_N.M.NZ"), United.Kingdom....Spot.Exchange.Rate..US..Pound.Sterling.Reciprocal.of.rxi_n.m.uk = c("Currency:_Per_GBP", …
Run Code Online (Sandbox Code Playgroud)

r reshape2 tidyr

9
推荐指数
2
解决办法
8518
查看次数

使用 Pivot_Longer() 和 Pivot_Wider 转置 Tibble (Tidyverse)

关于这个主题的类似问题都使用了 spread() 和 Gather() ,它们都是已退休的 Tidyverse 函数。假设我有一个这样的小标题:

people   1      2     3.    4     5
person1 27000 30000 40000 50000 60000
person2 27000 30000 40000 50000 60000
person3 27000 30000 40000 50000 60000
person4 27000 30000 40000 50000 60000
Run Code Online (Sandbox Code Playgroud)

我想将其转置为这样

People Person1 Person2 Person3 Person4 Person5
1.      270000  270000  270000. 270000. 270000
2.      30000.  30000. 30000  30000. 30000
3
4
5.     60000.   60000.  60000 60000 60000
Run Code Online (Sandbox Code Playgroud)

(没有填写第三和第四列只是为了节省自己的时间,但它们应该被填写。

r tidyverse

6
推荐指数
1
解决办法
3754
查看次数

标签 统计

r ×4

dataframe ×2

reshape2 ×1

tidyr ×1

tidyverse ×1

transpose ×1