gpt4 book ai didi

r - 如何在 R 中创建虚拟变量

转载 作者:行者123 更新时间:2023-12-04 09:20:30 25 4
gpt4 key购买 nike

我试图通过从 HOUSE 列中提取数字来为“好”和“坏”创建一个虚拟变量。我想做的是,如果 HOUSE 列中的值为 1、2、9 否则为“坏”),则该房屋为“好”)

我正在粘贴我的 data.frame 对象的 dput 输出。

## dput output assigned to the housetype variable

structure(list(Price = c(10L, 20L, 31L, 41L, 52L, 63L, 45L, 63L,
64L, 45L), Location = structure(c(4L, 7L, 6L, 3L, 2L, 4L, 5L,
1L, 6L, 8L), .Label = c("AK", "ATL", "BOS", "DC", "GA", "MA",
"NYC", "PA"), class = "factor"), HOUSE = c(1L, 1L, 1L, 2L, 6L,
7L, 8L, 9L, 10L, 11L)), .Names = c("Price", "Location", "HOUSE"
), class = "data.frame", row.names = c(NA, -10L))

如何创建一个虚拟变量,使每个变量仍然包含其他信息? (价格和位置)

谢谢!!!

最佳答案

你可以简单地做:

housetype$quality <- ifelse(housetype$HOUSE %in% c(1,2,9), "good", "bad")
housetype
# Price Location HOUSE quality
# 1 10 DC 1 good
# 2 20 NYC 1 good
# 3 31 MA 1 good
# 4 41 BOS 2 good
# 5 52 ATL 6 bad
# 6 63 DC 7 bad
# 7 45 GA 8 bad
# 8 63 AK 9 good
# 9 64 MA 10 bad
# 10 45 PA 11 bad

与其创建字符向量(“好”或“坏”),不如创建一个标志变量,即逻辑类型(TRUE 或 FALSE)的向量。它使用更少的内存,通常更容易使用:

housetype$is.good <- housetype$HOUSE %in% c(1,2,9)
housetype
# Price Location HOUSE quality is.good
# 1 10 DC 1 good TRUE
# 2 20 NYC 1 good TRUE
# 3 31 MA 1 good TRUE
# 4 41 BOS 2 good TRUE
# 5 52 ATL 6 bad FALSE
# 6 63 DC 7 bad FALSE
# 7 45 GA 8 bad FALSE
# 8 63 AK 9 good TRUE
# 9 64 MA 10 bad FALSE
# 10 45 PA 11 bad FALSE

关于r - 如何在 R 中创建虚拟变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12361991/

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