gpt4 book ai didi

r - 在整个数据帧上使用 ifelse()

转载 作者:行者123 更新时间:2023-12-05 08:17:44 28 4
gpt4 key购买 nike

我有一个如下所示的数据框:

dat <- data.frame(T1 = c('s', 's', 'm', 'l', 'm', 'xl'),
T2 = c('s', 's', 'm', 'l', 'm', 'xl'),
T3 = c('m', 's', 'm', 'l', 'l', 'xxl'),
T4 = c('m', 'm', 'm', 'l', 'l', 'xxl'),
T5 = c('m', 'm', 'm', 'xl', 'l', 'xl'))

现在,我想将这些字符转换成数字(1-5)。有没有什么方法可以在几行中为整个数据框做到这一点。如果我必须为每一列和每个字符使用 ifelse() 语句,我会用掉很多行。提前谢谢你。

最佳答案

使用匹配:

dat[] <- match(unlist(dat), unique(unlist(dat)))

T1 T2 T3 T4 T5
1 1 1 2 2 2
2 1 1 1 2 2
3 2 2 2 2 2
4 3 3 3 3 4
5 2 2 3 3 3
6 4 4 5 5 4

关于r - 在整个数据帧上使用 ifelse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74374999/

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