【发布时间】:2021-02-22 09:32:04
【问题描述】:
我对整个编程的东西都很陌生,但我需要为大型数据集编写可重现的脚本。我希望我提供了一个足够的例子。
我有一个这样的数据框(还有 8 个“营养素”和 5 个“贸易元素”以及更多年):
Year<-c(1961,1962)
Total_Energy_kcal_Production<-c(5,8)
Total_Energy_kcal_Import<-c(6,1)
Total_Ca_g_Production<-c(3,4)
Total_Ca_g_Import<-c(3,8)
df<-cbind(Year,Total_Energy_kcal_Production, Total_Energy_kcal_Import, Total_Ca_g_Production, Total_Ca_g_Import)
看起来像:
Year Total_Energy_kcal_Production Total_Energy_kcal_Import Total_Ca_g_Production Total_Ca_g_Import
1961 5 6 3 3
1962 8 1 4 8
我希望它看起来像这样:
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_longer 和 names_patern。我认为这可行,但我不完全理解这些论点:
df_piv<-df%>%
pivot_longer(cols = -Year, names_to = "Nutrient",
names_pattern = ".*(?=_)")
我收到一条我无法解释的错误消息:
Error: Can't select within an unnamed vector.
【问题讨论】: