r - 如何总计仅包含某些列的行
问题描述
所以我有一个基于 HR 数据培训的数据集,它询问技术和常见问题。
行代表员工,列代表他们在每个问题上获得的分数。这些列还包括人口统计数据。我只想查看技术和常见问题的总行数,而不包括人口统计数据。
techs<-grep("^T",rownames(dat))
commons<-grep("^C",rownames(dat))
我用它来尝试将列组合在一起,但是当我这样做时:
total<-rowsum(commons,techs)
并尝试将其置于线性回归中:
Mod1Train<-lm(total~.,data=dat[Train,])
它说有不同的可变长度。
我是 R 的超级新手,如果我真的离开了,请提前道歉。
解决方案
如果您提供数据样本,将来会非常有帮助。当我们猜测时,我们很难提供帮助。请参阅此链接https://stackoverflow.com/help/minimal-reproducible-example。
话虽如此,大声笑并意识到你是新人,我会猜一猜……
让我们假装数据,我认为是你的一个较小的虚构版本......
set.seed(2020)
emplid <- 1:10
gender <- sample(c("Male", "Female"), size = 10, replace = TRUE)
Tech1 <- sample(10:20, size = 10, replace = TRUE)
Tech2 <- sample(10:20, size = 10, replace = TRUE)
Tech3 <- sample(10:20, size = 10, replace = TRUE)
Common1 <- sample(10:20, size = 10, replace = TRUE)
Common2 <- sample(10:20, size = 10, replace = TRUE)
Common3 <- sample(10:20, size = 10, replace = TRUE)
Kathryn <- data.frame(emplid, gender, Tech1, Tech2, Tech3, Common1, Common2, Common3)
Kathryn
#> emplid gender Tech1 Tech2 Tech3 Common1 Common2 Common3
#> 1 1 Female 10 17 15 18 17 15
#> 2 2 Female 17 13 11 20 11 13
#> 3 3 Male 17 11 19 18 10 12
#> 4 4 Female 19 16 15 14 15 16
#> 5 5 Female 11 13 20 20 16 13
#> 6 6 Male 15 11 17 19 17 13
#> 7 7 Male 11 13 11 15 14 11
#> 8 8 Female 12 14 10 11 17 19
#> 9 9 Female 11 13 15 18 11 10
#> 10 10 Female 17 20 12 12 14 15
如果您是新手,可能想花一些时间学习tidyverse
这可以使这变得像这里一样简单有效地在 R 中的多个列中求和
根据您在评论中的注释,您有一个我们可以匹配的模式来总结问题。您的尝试很接近,grep
但我们想要返回这些值,因此我们需要value = TRUE
我们将存储和使用的值。
techqs <- grep(x = names(Kathryn), pattern = "^Tech", value = TRUE)
commonqs <- grep(x = names(Kathryn), pattern = "^Common", value = TRUE)
Kathryn$TechScores <- rowSums(Kathryn[,techqs])
Kathryn$CommonScores <- rowSums(Kathryn[,commonqs])
### Commented out how to do it manually.
# Kathryn$TechScores <- rowSums(Kathryn[,c("TQ1", "TQ2", "TQ3")])
# Kathryn$CommonScores <- rowSums(Kathryn[,c("CQ1", "CQ2", "CQ3")])
Kathryn$TotalScore <- Kathryn$TechScores + Kathryn$CommonScores
现在回归统计问题所在。你真的想从组件中预测总分吗???这并不难,r
但它会导致愚蠢的答案。
Kathryn_model <- lm(formula = TotalScore ~ TechScores + CommonScores, data = Kathryn)
summary(Kathryn_model)
#> Warning in summary.lm(Kathryn_model): essentially perfect fit: summary may be
#> unreliable
#>
#> Call:
#> lm(formula = TotalScore ~ TechScores + CommonScores, data = Kathryn)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -3.165e-14 -1.905e-15 9.290e-16 8.590e-15 1.183e-14
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 8.089e-14 6.345e-14 1.275e+00 0.243
#> TechScores 1.000e+00 9.344e-16 1.070e+15 <2e-16 ***
#> CommonScores 1.000e+00 1.130e-15 8.853e+14 <2e-16 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 1.43e-14 on 7 degrees of freedom
#> Multiple R-squared: 1, Adjusted R-squared: 1
#> F-statistic: 9.875e+29 on 2 and 7 DF, p-value: < 2.2e-16
推荐阅读
- c# - 为 InvokeCommand 中的命令参数编写单元测试
- javascript - 动态分页列表
- ubuntu - cloud-init 无法在附加了 iso 的 ubuntu 中工作
- docusignapi - DocuSign 通过 API 创建信封,但未发送电子邮件
- redirect - 如果未使用 nextAuth 登录,如何在 NextJS 中重定向
- python - 我正在尝试使用 python 将英语数据集转换为英语
- java - 使用TestNG可以使用预条件测试scnarios时如何并行执行黄瓜功能文件
- php - 通过 Red Bean PHP 通过 SSL 连接到 PGSQL
- python-3.8 - 如何获取熊猫中最大值和最小值出现的年份
- java - 如何在没有openCV的情况下减少灰度图像的噪声?