R 中的自动虚拟变量

发布于 2025-01-08 10:29:00 字数 364 浏览 1 评论 0原文

我有以下创建的数据框:

temp <- as.data.frame(with(uadm, table(prlo_state_code)))

我希望创建 11 个虚拟变量。前 10 名各一个,“其他”一个。可以很容易地找到前 10 个:

#top10
temp <- temp[order(temp$Freq, decreasing=T),]
head(temp, n=10)

我知道 R 很棒,所以我假设有一个很容易自动创建(和命名)前 10 个虚拟变量的方法,并将其余变量折叠到名为“other”的最终虚拟变量中。 '

预先感谢您的任何帮助或见解。

I have the following data frame which is created below:

temp <- as.data.frame(with(uadm, table(prlo_state_code)))

I am looking to create 11 dummy variables. One for each of the top 10 and an 'other'. The top 10 can easily be found with:

#top10
temp <- temp[order(temp$Freq, decreasing=T),]
head(temp, n=10)

I know R is great, so I am assuming there is an easy to auto-create (and name) the dummy variables from the top 10 and collapse the rest into a final dummy called 'other.'

Thanks in advance for any help or insight.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

楠木可依 2025-01-15 10:29:00

您很少需要虚拟变量——R 会默默地为您创建它们。

如果你只是想把所有不在前10名的班级放在一起,
您可以简单地使用 ifelse%in%

x <- sample( LETTERS, 1e4, replace=TRUE, p=runif(26) )
top10 <- names( sort(table(x), decreasing=TRUE)[1:10] )
y <- ifelse( x %in% top10, as.character(x), "Rest" )
table(y)

如果您绝对需要虚拟变量,可以使用 model.matrix 创建它们。

model.matrix(~y) 

You rarely need dummy variables -- R silently creates them for you.

If you just want to put all the classes that are not in the top 10 together,
you can simply use ifelse and %in%.

x <- sample( LETTERS, 1e4, replace=TRUE, p=runif(26) )
top10 <- names( sort(table(x), decreasing=TRUE)[1:10] )
y <- ifelse( x %in% top10, as.character(x), "Rest" )
table(y)

If you absolutely need dummy variables, you can create them with model.matrix.

model.matrix(~y) 
深陷 2025-01-15 10:29:00

当在公式中输入因子类变量时,R 的回归函数将在 model.matrix 中构成必要的列。这都是自动的。默认对比是在第一个因素水平和其他每个水平之间,即所谓的“治疗对比”。其他选择也是可能的。

R's regression functions will make up the necessary columns in the model.matrix when a factor-classed variable is entered in a formula.. It's all automatic. The default contrast is between the first factor level and each of the other levels, so-called "treatment constrasts". Other choices are possible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文