我正在尝试创建一个名为" 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
答案 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