如何在 r 中融化我的数据框
How to melt my dataframe in r
我有以下数据框:
num type f
1: 1 aa 0.8103
2: 1 ba 0.7500
3: 2 bb 0.8602
4: 3 bb 0.9017
5: 3 aa 0.6308
6: 3 cc 0.8491
我想重新排列我的数据,这样我的列将是 "num",行将是 "type",值将是 "f",如果没有 "f",会写“0”,如下:
1 2 3
aa 0.8103 0 0.6308
ba 0.7500 0 0
bb 0 0.8602 0.9017
cc 0 0 0.8491
任何人都知道如何重新排列我的数据框?
library(tidyr)
df %>% spread(num, f, fill=0)
type 1 2 3
1 aa 0.8103 0.0000 0.6308
2 ba 0.7500 0.0000 0.0000
3 bb 0.0000 0.8602 0.9017
4 cc 0.0000 0.0000 0.8491
由于您似乎使用 data.table
,请尝试
library(data.table)
dcast(data = df, type ~ num, fill = 0)
# type 1 2 3
#1 aa 0.8103 0.0000 0.6308
#2 ba 0.7500 0.0000 0.0000
#3 bb 0.0000 0.8602 0.9017
#4 cc 0.0000 0.0000 0.8491
一个base R
选项是xtabs
xtabs(f ~ type + num, df1)
# num
#type 1 2 3
# aa 0.8103 0.0000 0.6308
# ba 0.7500 0.0000 0.0000
# bb 0.0000 0.8602 0.9017
# cc 0.0000 0.0000 0.8491
我有以下数据框:
num type f
1: 1 aa 0.8103
2: 1 ba 0.7500
3: 2 bb 0.8602
4: 3 bb 0.9017
5: 3 aa 0.6308
6: 3 cc 0.8491
我想重新排列我的数据,这样我的列将是 "num",行将是 "type",值将是 "f",如果没有 "f",会写“0”,如下:
1 2 3
aa 0.8103 0 0.6308
ba 0.7500 0 0
bb 0 0.8602 0.9017
cc 0 0 0.8491
任何人都知道如何重新排列我的数据框?
library(tidyr)
df %>% spread(num, f, fill=0)
type 1 2 3
1 aa 0.8103 0.0000 0.6308
2 ba 0.7500 0.0000 0.0000
3 bb 0.0000 0.8602 0.9017
4 cc 0.0000 0.0000 0.8491
由于您似乎使用 data.table
,请尝试
library(data.table)
dcast(data = df, type ~ num, fill = 0)
# type 1 2 3
#1 aa 0.8103 0.0000 0.6308
#2 ba 0.7500 0.0000 0.0000
#3 bb 0.0000 0.8602 0.9017
#4 cc 0.0000 0.0000 0.8491
一个base R
选项是xtabs
xtabs(f ~ type + num, df1)
# num
#type 1 2 3
# aa 0.8103 0.0000 0.6308
# ba 0.7500 0.0000 0.0000
# bb 0.0000 0.8602 0.9017
# cc 0.0000 0.0000 0.8491