我有一个数据集:
variableName<-c("Mood","Mood","Mood","HappinessIndex","HappinessIndex","HappinessIndex","HappinessIndex","weather","weather","weather","weather","weather")
order<-c(1,2,3,1,2,3,4,1,2,3,4,5)
categoryName<-c("Happy","Normal","Sad","Very Happy","Happy","Unhappy","Sad","Sunny","Cloudy","Windy","Rainy","Stormy")
df<-data.frame(variableName,order,categoryName)
Run Code Online (Sandbox Code Playgroud)
categoryName变量解释了每个变量中可用的所有类别(在variableName中列出.我现在正在尝试生成一个文本文件,该文件将总结:
理想的输出是一个包含以下内容的文本文件:
Mood: 1 "Happy" 2 "Normal" 3 "Sad"
Happiness Index: 1 "Very Happy" 2 "Happy" 3 "Unhappy" 4 "Sad"
weather: 1 "Sunny" 2 "Cloudy" 3 "Windy" 4 "Rainy" 5 "Stormy"
Run Code Online (Sandbox Code Playgroud)
我是R的初学者,所以任何帮助都将非常感谢!
根据显示的预期输出,您可以使用dQuote
(在评论中使用与@David Arenburg的代码类似的语法)
library(data.table)
setDT(df)[,paste(order, dQuote(categoryName), collapse=' '), by = variableName][,
paste(variableName, V1, sep=": ")]
#[1] "Mood: 1 “Happy” 2 “Normal” 3 “Sad”"
#[2] "HappinessIndex: 1 “Very Happy” 2 “Happy” 3 “Unhappy” 4 “Sad”"
#[3] "weather: 1 “Sunny” 2 “Cloudy” 3 “Windy” 4 “Rainy” 5 “Stormy”"
Run Code Online (Sandbox Code Playgroud)
或使用 dplyr
library(dplyr)
df %>%
group_by(variableName) %>%
summarise(V1= paste(order, dQuote(categoryName), collapse= ' ')) %>%
transmute(V1= paste(variableName, V1, sep=": "))
Run Code Online (Sandbox Code Playgroud)