R 使用名称\u模式旋转\u
我对整个编程都是新手,但我需要为大型数据集编写可复制的脚本。我希望我提供了一个充分的例子 我有一个这样的数据框架(还有8个“营养素”和5个“贸易元素”以及更多的年份): 我希望它看起来像这样:R 使用名称\u模式旋转\u,r,dplyr,pivot,R,Dplyr,Pivot,我对整个编程都是新手,但我需要为大型数据集编写可复制的脚本。我希望我提供了一个充分的例子 我有一个这样的数据框架(还有8个“营养素”和5个“贸易元素”以及更多的年份): 我希望它看起来像这样: Year Nutrient Production Import 1961 Total_Energy_kcal 5 6 1962 Total_Energy_kcal 8 1 1961 Tota
Year Nutrient Production Import
1961 Total_Energy_kcal 5 6
1962 Total_Energy_kcal 8 1
1961 Total_Ca_g 3 3
1962 Total_Ca_g 4 8
我用pivot\u longer
和names\u paten
做了很多尝试。我认为这会奏效,但我不完全理解以下论点:
df_piv<-df%>%
pivot_longer(cols = -Year, names_to = "Nutrient",
names_pattern = ".*(?=_)")
您可以提供
names\u pattern
regex作为:
tidyr::pivot_longer(df,
cols = -Year,
names_to = c('Nutrient', '.value'),
names_pattern = '(.*)_(\\w+)')
# Year Nutrient Production Import
# <dbl> <chr> <dbl> <dbl>
#1 1961 Total_Energy_kcal 5 6
#2 1961 Total_Ca_g 3 3
#3 1962 Total_Energy_kcal 8 1
#4 1962 Total_Ca_g 4 8
谢谢!我以前尝试过这个方法时,cbind导致了这个问题。谢谢!
df_piv<-df%>%
pivot_longer(cols = -Year, names_to = "Nutrient",
names_pattern = ".*(?=_)")
Error: Can't select within an unnamed vector.
tidyr::pivot_longer(df,
cols = -Year,
names_to = c('Nutrient', '.value'),
names_pattern = '(.*)_(\\w+)')
# Year Nutrient Production Import
# <dbl> <chr> <dbl> <dbl>
#1 1961 Total_Energy_kcal 5 6
#2 1961 Total_Ca_g 3 3
#3 1962 Total_Energy_kcal 8 1
#4 1962 Total_Ca_g 4 8
df<-data.frame(Year,Total_Energy_kcal_Production,Total_Energy_kcal_Import,
Total_Ca_g_Production, Total_Ca_g_Import)