R:根据OR条件创建具有多个级别的新变量

时间:2018-04-04 18:08:38

标签: r variables r-factor

我正在尝试创建一个名为" txtype"的新变量。 (治疗类型)基于包含不同治疗代码的变量" NDC"。在这个" txtype"变量,我想创建多个级别来指示实际的治疗类型。

到目前为止,我只知道如何为实际治疗类型创建更高级别的变量:

 data$typeA <- data, NDC %in% c("11111", "22222", "33333"))

但我想要做的是创建数据$ txtype,其中txtype具有从typeA到typeG的LEVELS。例如,在这个新变量txtype中,级别typeA的NDC为11111,22222,33333; typeB的NDC为44444,5555等,最多可达7种类型。

我提前为这个基本问题道歉,如果发布了类似的内容 - 如果你能指出我正确的方向,我将不胜感激!

编辑:我很抱歉这个编辑迟到了。 case_when很优雅,但没有做我想要的!我正在尝试创建一个名为&#34; txtype&#34;的变量。多个级别命名为&#34; typeA&#34;,&#34; typeB&#34;等。以下是来自样本数据的两列,包括主题ID和变量&#34; NDC&#34;。第三列是我希望根据NDC值创建的。

ID     NDC     txtype
1      11111   typeA
1      44444   typeB
2      22222   typeA
2      33333   typeA
2      55555   typeC

1 个答案:

答案 0 :(得分:3)

查看df.groupBy("id") .agg(sort_array(collect_list( // NOTE: sort based on the first element of the struct struct("time", "channel"))).as("stuff")) .select("id", "stuff.channel") .show(false) +---+---------+ |id |channel | +---+---------+ |1 |[A, B, E]| |2 |[D, A, C]| +---+---------+ 。它允许您指定矢量化dplyr::case_when。所以这就像是:

if