gpt4 book ai didi

当 df 也包含字符串时,将 data.frame 转换为数字矩阵的正确方法?

转载 作者:行者123 更新时间:2023-12-02 05:10:57 24 4
gpt4 key购买 nike

我有一个取自 .csv 文件的数据框,其中包含数字和字符值。我想把这个数据框转换成矩阵。所有包含的信息都是数字(我删除的非数字行),因此应该可以将数据帧转换为数字矩阵。不过,我确实得到了一个字符矩阵。

我发现解决这个问题的唯一方法是对每一行使用 as.numeric ,但这非常耗时。我非常确定有一种方法可以通过某种 if(i in 1:n) 形式来做到这一点,但我无法弄清楚它是如何工作的。或者真的是从数值开始的唯一方法,就像这里提出的那样(Making matrix numeric and name orders)?

对于你们大多数人来说,这可能是一件非常简单的事情:P

矩阵要大得多,这只是前几行...代码如下:

cbind(
as.numeric(SFI.Matrix[ ,1]),
as.numeric(SFI.Matrix[ ,2]),
as.numeric(SFI.Matrix[ ,3]),
as.numeric(SFI.Matrix[ ,4]),
as.numeric(SFI.Matrix[ ,5]),
as.numeric(SFI.Matrix[ ,6]))

# to get something like this again:

Social.Assistance Danger.Poverty GINI S80S20 Low.Edu Unemployment
0.147 0.125 0.34 5.5 0.149 0.135 0.18683691
0.258 0.229 0.27 3.8 0.211 0.175 0.22329362
0.207 0.119 0.22 3.1 0.139 0.163 0.07170422
0.219 0.166 0.25 3.6 0.114 0.163 0.03638525
0.278 0.218 0.29 4.1 0.270 0.198 0.27407825
0.288 0.204 0.26 3.6 0.303 0.211 0.22372633

感谢您的帮助!

最佳答案

编辑 2:请参阅@flodel 的回答。好多了。

尝试:

# assuming SFI is your data.frame
as.matrix(sapply(SFI, as.numeric))

编辑:或如 @CarlWitthoft 在评论中建议的那样:

matrix(as.numeric(unlist(SFI)),nrow=nrow(SFI))

关于当 df 也包含字符串时,将 data.frame 转换为数字矩阵的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16518428/

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