我想在Excel中重塑我的数据,Excel目前采用“宽”格式转换为“长”格式。您可以看到每个变量(Column Name
)对应于任期,种族和成本负担。我想更轻松地将这些数据放入数据透视表中,但我不知道该怎么做。那里有什么想法吗?
仅供参考,数据为HUD CHAS(住房和城市发展部,综合住房负担能力战略),其中有20多个表需要重新塑造。
答案 0 :(得分:0)
有一个简单的R脚本将对此有所帮助。该函数接受csv文件的路径以及标头变量的数量。在我提供的示例图像/数据中,有7个标头变量。也就是说,实际数据(T9_est1)从第8列开始。
# Use the command below if you do not have the tidyverse package installed.
# install.packages("tidyverse")
library(tidyverse)
read_data_long <- function(path_to_csv, header_vars) {
data_table <- read_csv(path_to_csv)
fields_to_melt <- names(data_table[,as.numeric(header_vars+1):ncol(data_table)])
melted <- gather(data_table, fields_to_melt, key = 'variable', value = 'values')
return(melted)
}
# Change the file path to where your data is and where you want it written to.
# Also change "7" to the number of header variables your data has.
melted_data <- read_data_long("path_to_input_file.csv", 7)
write_csv(melted_data, "new_path_to_melted_file.csv")
(使用更优雅的解决方案更新了7/25/18;再次修改了9/28/18,但有很小的改动。)