使用tidyr转换数据帧
我有这个:使用tidyr转换数据帧,r,tidyr,R,Tidyr,我有这个: library(tidyr) haves <- data.frame( model1_prediction = c(1, 2) , model2_prediction = c(3, 4) , model3_prediction = c(5, 6) , actuals = c(99.1, 99.2) ) model1_prediction model2_prediction model3_predic
library(tidyr)
haves <- data.frame(
model1_prediction = c(1, 2)
, model2_prediction = c(3, 4)
, model3_prediction = c(5, 6)
, actuals = c(99.1, 99.2)
)
model1_prediction model2_prediction model3_prediction actuals
1 3 5 99.1
2 4 6 99.2
library(tidyr)
有%
聚集(
键,长,-id
)
t1
t2%
挑选(
现货
) %>%
变异(
id=行号()
) %>%
聚集(
键,实际值,-id
)
t2
我的___想要%
内部连接(t2,by=c(“id”=“id”))%>%
挑选(
长的
现货
)
我的儿子想要什么
试试这个:
library(tidyr)
haves %>% pivot_longer(cols = -actuals) %>% arrange(value) %>% select(value,actuals)
输出:
value actuals
1 1 99.1
2 2 99.2
3 3 99.1
4 4 99.2
5 5 99.1
6 6 99.2
试试这个:
library(tidyr)
haves %>% pivot_longer(cols = -actuals) %>% arrange(value) %>% select(value,actuals)
输出:
value actuals
1 1 99.1
2 2 99.2
3 3 99.1
4 4 99.2
5 5 99.1
6 6 99.2
您可以在
pivot\u longer()
中将names\u设置为=NULL
,以删除记录原始列名的列。这样可以省去使用select()
使代码更简洁
library(tidyr)
library(dplyr)
haves %>%
pivot_longer(-actuals, names_to = NULL) %>%
arrange(value)
# # A tibble: 6 x 2
# actuals value
# <dbl> <dbl>
# 1 99.1 1
# 2 99.2 2
# 3 99.1 3
# 4 99.2 4
# 5 99.1 5
# 6 99.2 6
library(tidyr)
图书馆(dplyr)
有%>%
pivot_longer(-actuals,names_to=NULL)%>%
排列(值)
##tibble:6 x 2
#实际值
#
# 1 99.1 1
# 2 99.2 2
# 3 99.1 3
# 4 99.2 4
# 5 99.1 5
# 6 99.2 6
您可以在pivot\u longer()中将names\u设置为=NULL
以删除记录原始列名的列。这样可以省去使用select()
使代码更简洁
library(tidyr)
library(dplyr)
haves %>%
pivot_longer(-actuals, names_to = NULL) %>%
arrange(value)
# # A tibble: 6 x 2
# actuals value
# <dbl> <dbl>
# 1 99.1 1
# 2 99.2 2
# 3 99.1 3
# 4 99.2 4
# 5 99.1 5
# 6 99.2 6
library(tidyr)
图书馆(dplyr)
有%>%
pivot_longer(-actuals,names_to=NULL)%>%
排列(值)
##tibble:6 x 2
#实际值
#
# 1 99.1 1
# 2 99.2 2
# 3 99.1 3
# 4 99.2 4
# 5 99.1 5
# 6 99.2 6
我认为排列是多余的对吗?@cs0815这取决于您希望最终输出的方式。当然你可以避免:)我认为排列是多余的对吗?@cs0815这取决于你希望最终输出的方式。当然你可以避免:)