gpt4 book ai didi

r 将一串数据拆分成多列,按各个变量排序

转载 作者:行者123 更新时间:2023-12-04 10:58:17 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Split string column to create new binary columns

(8 个回答)


4 天前关闭。




我有一个关于清理杂乱数据的简单问题。我有一个通过电子邮件发送给我的数据集,其中包含多列,每列包含一个逗号分隔的数字字符串。传统上,这些数字中的每一个都应该是它自己的变量,但这不是这些数据集提供给我的方式。以下是一些数据的示例:

indication  treatment
1,2 3
2 2,1
1,3 2,3

请想象这些数据集包含近 100 个这样的列和数千行,以及这些列中的每一列中不同数量的变量。我的目标是导入这样的数据集,然后拆分每一列,使字符串中的每个变量都在自己的列中,但每列的拆分方式是每个唯一变量都排序到自己的列中。像这样:
indication_1    indication_2    indication_3    treatment_1 treatment_2 treatment_3
1 1 0 0 0 1
0 1 0 1 1 0
1 0 1 0 1 1

请注意,列标题已更改,数值被列为二进制 0 或 1,其中 1 表示存在变量。

我遇到了问题,因为我一直在尝试的拆分函数要求我知道我需要多少列,然后在拆分后不要将变量排序到它们自己的列中。它变得非常复杂,需要我为包含字符串的每个单独列编写单独的代码。

Id 就像一个函数,它可以采用包含字符串的列,将数据拆分为单独的排序列,使这些列成为二进制是或否,然后更改列名以指示原始列名和该列中的变量。我希望这适用于任何数据列,因此我不必重写或修改单个列的函数(假设所有列都是带有字符标题的数字字符串)。

提前致谢。

最佳答案

我们可以做一个 strsplit然后用 mtabulate获取频率

library(qdapTools)
do.call(cbind, lapply(df, function(x) mtabulate(strsplit(x, ","))))
# indication.1 indication.2 indication.3 treatment.1 treatment.2 treatment.3
#1 1 1 0 0 0 1
#2 0 1 0 1 1 0
#3 1 0 1 0 1 1

关于r 将一串数据拆分成多列,按各个变量排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515850/

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