r - 如何使用 R 中的线索对数据集进行排序
问题描述
我有一个大数据集,但这是我的一组数据:
df <- read.table(header = TRUE, text =
"Cues 214 330 226
M A B M
Z Z Z Z
P J P 12
R K R 11
"
)
提示栏指导我得到下表。如果是同一个字母,则为 10,否则为 0
df <- read.table(header = TRUE, text =
"214 330 226
0 0 10
10 10 10
0 10 0
0 10 0
"
)
我们可以在 R 中做到这一点吗?
解决方案
这是base的快速方法:
df[] = lapply(df, as.character) # convert to character, if needed
result = df[-1]
result[] = lapply(result, function(x) ifelse(x == df$Cues, 10, 0))
result
# X214 X330 X226
# 1 0 0 10
# 2 10 10 10
# 3 0 10 0
# 4 0 10 0
并且dplyr
:
library(dplyr) # across requires dplyr version 1.0 or higher
df %>%
mutate(
across(where(is.factor), as.character), # convert to character, if needed
across(-Cues, ~ if_else(. == Cues, 10, 0))
) %>%
select(-Cues)
# X214 X330 X226
# 1 0 0 10
# 2 10 10 10
# 3 0 10 0
# 4 0 10 0
推荐阅读
- python - TFLite:`ValueError:模型输入未量化。`
- git - 使用 airblade/vim-gitgutter 插件时,有没有办法在 vim 中显示行号和 git 状态?
- python - 熊猫数据框中的水平查找
- android - 当应用程序处于后台/在 Android 中终止时,无法从 FCM 通知中提取数据
- javascript - 在 ReactJS 中,哪些 props 作为 setState() 的第二个参数提供
- javascript - 如何更改 ng-options 值取决于 angularjs 中的其他变量?
- c - 如何在文件中搜索与给定字符串匹配的字符串?
- swift - 在 swift 中以编程方式在堆栈视图中添加标签和文本视图
- python - 是否可以使用 Visual Studio Code Python 扩展调试 Iron Python?
- azure - Azure 静态 Web 应用路由区分大小写