R语言数据集长转宽及重命名存储方法求助(含报错)
R语言新手问题解决指南
一、先修正导入数据的代码问题
你的变量名用了空格(election data),这在R里会导致后续操作报错,得改成下划线连接的合法变量名,修正后的导入代码:
library(tidyverse) election_data <- read_csv(file = "NSW_primaries.csv", col_names = TRUE) view(election_data)
二、长格式转宽格式(用tidyverse的pivot_wider)
tidyverse里专门处理长转宽的函数是pivot_wider(),你需要根据自己数据集的列结构指定三个关键参数:
id_cols:用来识别每一行唯一观测的列(比如选区、年份这类列)names_from:要转成宽格式列名的列(比如政党、候选人这类列)values_from:对应新列的数值来源列(比如得票数、支持率这类列)
举个实际例子(假设你的数据有electorate(选区)、party(政党)、votes(得票)这三列):
# 转换后存为新数据集election_wide election_wide <- election_data %>% pivot_wider( id_cols = electorate, # 按选区分组 names_from = party, # 把不同政党转成列名 values_from = votes # 列对应的值是得票数 )
如果你的列名不一样,替换成自己实际的列名就行。
三、关于rename.file报错的问题
R里根本没有rename.file()这个函数,分两种情况解决:
- 如果是想重命名内存里的数据框(把
election_data改成NSW_polls)
直接赋值就行,不用特殊函数:
NSW_polls <- election_data
- 如果是想重命名本地的CSV文件(把
NSW_primaries.csv改成NSW_polls.csv)
用R内置的file.rename()函数:
file.rename(from = "NSW_primaries.csv", to = "NSW_polls.csv")
注意要确保文件路径正确,如果文件不在当前工作目录,得写完整路径。
内容的提问来源于stack exchange,提问作者Kate Boshier
相关产品推荐
相关产品推荐

