【发布时间】:2020-07-18 21:41:09
【问题描述】:
我正在使用 Power BI 创建报表,但我正在 Power Query 编辑器中的 R 脚本中进行数据清理,因为我无法想象如何在 DAX 中执行此操作。出于某种原因,我创建的一个新字符列被读取为数字,类似于将因子级别读取为整数时会发生的情况。这是一些示例数据。
+-----------+-------------------------+-----------------------------------+
| PatientId | LabTestName | LabTestResult |
+-----------+-------------------------+-----------------------------------+
| 1 | Veritor Rapid Influenza | NEGATIVE TYPE A / NEGATIVE TYPE B |
| 1 | Veritor Rapid Strep | Cancelled |
| 1 | NA | NA |
| 2 | NA | NA |
| 3 | Veritor Rapid Strep | Negative |
| 3 | SARS CoV 2 RNA, RT PCR | NOT DETECTED |
+-----------+-------------------------+-----------------------------------+
一些示例代码:
x %>%
group_by(PatientId) %>%
mutate(
CoV_Tested = any(!is.na(LabTestName) & str_detect(LabTestName, "CoV")),
CoV_Result = ifelse(
CoV_Tested, unique(LabTestResult[!is.na(LabTestName) & str_detect(LabTestName, "CoV")]), NA
)
) %>%
distinct(PatientId, CoV_Tested, CoV_Result)
在下面的结果表中,Power BI 将 CoV_Tested 读取为符合逻辑的,但 CoV_Result 读取为文本。
+-----------+------------+--------------+
| PatientId | CoV_Tested | CoV_Result |
+-----------+------------+--------------+
| 1 | FALSE | <NA> |
| 2 | FALSE | <NA> |
| 3 | TRUE | NOT DETECTED |
+-----------+------------+--------------+
“未检测到”的值被读取为 4。我已经用我的大型数据集和这个较小的示例复制了这个。我也不能只告诉 Power BI 将数据类型更改为“文本”,因为它只是将 4 更改为“4”(即,将数字“4”更改为文本“4”)。我可能只是能够转换 Power BI 中的列以用实际文本替换数字,但这是一个不需要的步骤,如果有很多唯一值会很麻烦。
任何帮助将不胜感激!谢谢!
【问题讨论】:
标签: r powerbi powerbi-desktop