gpt4 book ai didi

R - 如何命名数据框中的对比

转载 作者:行者123 更新时间:2023-12-04 00:41:17 24 4
gpt4 key购买 nike

假设我有一个数据框:

xyz <- c(1,2,3,4,5,6)
zyx <- c("A", "B", "C", "A", "B", "C")
zyx <- factor(zyx)
myframe <- data.frame(xyz, zyx)

现在我想计算 zyx 变量的约束。我使用:

contrasts(myframe$zyx) <- contr.treatment(3, base=3)

如果我现在查看变量 myframe$zyx,我得到:

[1] A B C A B C
attr(,"contrasts")
1 2
A 1 0
B 0 1
C 0 0
Levels: A B C

但我希望对立面不命名为“1”或“2”,而是命名为“contr_A_vs_C”和“contr_B_vs_C”之类的东西。

你有什么想法吗?

编辑:

好吧,这似乎不是一个简单的问题。让我更直截了当:

contrasts 函数中是否有一个可以解决的“名称”命令?

例如,如果您进行线性回归,您可以通过直接命令来处理模型估计值,例如,如果您想要 R 平方的值,您可以键入:

rsquared <- regressionmodel$r.squared

也许,对比中有一些相似的东西,比如

dataframe$contrast.names <- ...

?

最佳答案

您所引用的矩阵 存储为您指定的列的属性。可以直接访问如下:

attr(myframe$zyx, "contrasts")
# 1 2
# A 1 0
# B 0 1
# C 0 0

因此,您可以像往常一样使用 colnames(但我不知道这是否会破坏以后可能使用 contrasts控制治疗).

colnames(attr(myframe$zyx, "contrasts")) <- 
c("contr_A_vs_C", "contr_B_vs_C")

myframe$zyx
# [1] A B C A B C
# attr(,"contrasts")
# contr_A_vs_C contr_B_vs_C
# A 1 0
# B 0 1
# C 0 0
# Levels: A B C

关于R - 如何命名数据框中的对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com