在 R 中重命名数据

Renaming data in R

我是 R 的新手,正在尝试制作一些数字,但在重命名数据时遇到了问题。基本上,我有一个来自 SPSS 的超大数据集,我将其导入 R 并创建了一个较小的数据 table,其中包含一个我试图查看的变量。我已成功将我的数据转换为长格式,但我的时间列未按我希望的方式显示。

当我将数据转换为长格式时,我制作了一个数据 Time 列,该列中的数据显示 TIME1COMPOSITETIME2COMPOSITETIME3COMPOSITE -这是 SPSS 文件中的原始列名称。我更希望它改为阅读 Time1Time2Time3(这样它在我制作的图表的轴标签上看起来更好)。有没有简单的方法可以做到这一点?是重命名数据点还是只重命名图表上的标签?

这是我的代码的示例:

dt<- data.table(dt)

#Putting into long format

dt <- melt(dt, measure.vars = c("TIME1COMPOSITE", "TIME2COMPOSITE", "TIME3COMPOSITE"), variable.name = "Time", value.name = "CompositeScore")

#Computing means

dt[, meanCompositeScore:= mean(CompositeScore), by=c("Condition", "Time")]

#Plotting

plot <- ggplot(dt, aes(x=Time, y=meanCompositeScore, color=Condition)) + geom_point()

plot

使用您建议的代码的最简单方法是使用 colnames() 函数更改开头的列名。

colnames(dt) <- c("colname1","colname2", ...)

另一种使用 tidy 格式的方法是使用 rename() 函数(来自 dplyr)。

dt %>%
   rename(Time1 = TIME1COMPOSITE, Time2 = TIME2COMPOSITE, Time3 = TIME3COMPOSITE)

要在计算完成后更改名称,您可以将时间转换为一个因素并重新标记它们。我们可以使用as.factor()函数来转换数组


dt$Time <- as.factor(dt$Time)

revalue(dt$Time, c("Time1" = "TIME1COMPOSITE", "Time2" = "TIME2COMPOSITE", "Time3" = "TIME3COMPOSITE"))

要在图表中添加标签,我们可以将其转换为一个因子,并使用 as.factor() 函数在我们使用图表的线上设置水平。

levels = c("Time1", "Time2", "Time3")

plot <- ggplot(dt, aes(x=as.factor(Time, levels = levels), y=meanCompositeScore, color=Condition)) + geom_point()

最后一种方法是使用 scale_x_discrete() ggplot 函数重新标记图形标签而不是值。

plot <- ggplot(dt, aes(x=Time, y=meanCompositeScore, color=Condition)) + 
  geom_point() +
  scale_x_discrete(labels = c('Time1','Time2','Time3'))

如果有任何方法对您不起作用,请告诉我,我会尝试澄清方法或纠正错误。