如何用匹配的 P_ID 替换所有行的 NULL 值?
How can I replace NULL values with matching P_ID for all rows?
我的数据集有一个问题,如果我选择一名与其 P_ID 相关联的患者的数据,我会得到他服用了多少药物、进行了多少次测试以及做了什么的所有详细信息他得的病。但是一部分提供的详细信息使另一部分空白。因此,每当我尝试计算与与疾病 ID 相关的患者 ID 相关的药物时,它都会给我 1。以下是示例数据:
p_id ds_id sympton ds_from_date ds_to_date dr_id dosage dr_from_date dr_to_date tt_id result tt_date s_id
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00096360 7 1999-1-23 2000-1-23 null null null null
00047880 null null null null 00024244 7 2000-1-23 2001-1-23 null null null null
00047880 null null null null 00054795 3 2001-1-23 2002-1-23 null null null null
00047880 null null null null 00063682 4 2002-1-23 2003-1-23 null null null null
00047880 null null null null null null null null 00796 Result of test 1999-1-23 null
00047880 null null null null null null null null 00924 Result of test 2000-1-23 null
00047880 null null null null null null null null 00781 Result of test 2001-1-23 null
00047880 null null null null null null null null 00314 Result of test 2002-1-23 null
00047880 null null null null null null null null null null null 0000973218
00013243 0005 Sympton of Breast tumor 1998-5-20 2003-12-31 00033524 3 1998-5-20 1999-5-20 null null null null
00013243 null null null null 00061642 7 1999-5-20 2000-5-20 null null null null
00013243 null null null null 00079097 5 2000-5-20 2001-5-20 null null null null
00013243 null null null null 00057488 7 2001-5-20 2002-5-20 null null null null
00013243 null null null null 00076684 8 2002-5-20 2003-5-20 null null null null
00013243 null null null null null null null null 00111 Result of test 1998-5-20 null
00013243 null null null null null null null null 00583 Result of test 1999-5-20 null
00013243 null null null null null null null null 00781 Result of test 2000-5-20 null
00013243 null null null null null null null null 00583 Result of test 2001-5-20 null
00013243 null null null null null null null null 00164 Result of test 2002-5-20 null
00013243 null null null null null null null null null null null 0000940071
我要用准确的数据填充所有空值。喜欢:
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00096360 7 1999-1-23 2000-1-23 00796 Result of test 1999-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00024244 7 2000-1-23 2001-1-23 00924 Result of test 2000-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00054795 3 2001-1-23 2002-1-23 00781 Result of test 2001-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00063682 4 2002-1-23 2003-1-23 00314 Result of test 2002-1-23 0000973218
即使行数没有减少,但我希望这些数据以某种方式被填满。这真的让我很困惑,我尝试了很多方法,但没有任何效果。因此,如果我在画面中将其可视化,它会显示患有特定疾病的人只服用了一种药物,其余药物被发送到 NULL 值。
让我们假设您的数据是这样的
在 R 中你可以这样做
df <- read.table(text = "Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
aa bb cc dd ee ff gg hh ii jj
aa null null null null null null null null null
aa null kk ll null null null null null oo
null null null null null null null null null mm", header = T)
#1
df[df == 'null'] <- NA
#2
tidyr::fill(df, everything(), .direction = "down")
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
1 aa bb cc dd ee ff gg hh ii jj
2 aa bb cc dd ee ff gg hh ii jj
3 aa bb kk ll ee ff gg hh ii oo
4 aa bb kk ll ee ff gg hh ii mm
在Excel中这样做
- Select 并将所有
null
替换为空格
- select 第一个空格,输入带有
=A5
的公式,即引用其正上方的单元格。
- 复制这个公式
- select 所有数据,
find & replace
-> go to special
-> blanks
-> ctrl + V 即粘贴和你完成了。
注意:Tableau 并非用于数据整理,我相信它也可以通过其他方法完成
我的数据集有一个问题,如果我选择一名与其 P_ID 相关联的患者的数据,我会得到他服用了多少药物、进行了多少次测试以及做了什么的所有详细信息他得的病。但是一部分提供的详细信息使另一部分空白。因此,每当我尝试计算与与疾病 ID 相关的患者 ID 相关的药物时,它都会给我 1。以下是示例数据:
p_id ds_id sympton ds_from_date ds_to_date dr_id dosage dr_from_date dr_to_date tt_id result tt_date s_id
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00096360 7 1999-1-23 2000-1-23 null null null null
00047880 null null null null 00024244 7 2000-1-23 2001-1-23 null null null null
00047880 null null null null 00054795 3 2001-1-23 2002-1-23 null null null null
00047880 null null null null 00063682 4 2002-1-23 2003-1-23 null null null null
00047880 null null null null null null null null 00796 Result of test 1999-1-23 null
00047880 null null null null null null null null 00924 Result of test 2000-1-23 null
00047880 null null null null null null null null 00781 Result of test 2001-1-23 null
00047880 null null null null null null null null 00314 Result of test 2002-1-23 null
00047880 null null null null null null null null null null null 0000973218
00013243 0005 Sympton of Breast tumor 1998-5-20 2003-12-31 00033524 3 1998-5-20 1999-5-20 null null null null
00013243 null null null null 00061642 7 1999-5-20 2000-5-20 null null null null
00013243 null null null null 00079097 5 2000-5-20 2001-5-20 null null null null
00013243 null null null null 00057488 7 2001-5-20 2002-5-20 null null null null
00013243 null null null null 00076684 8 2002-5-20 2003-5-20 null null null null
00013243 null null null null null null null null 00111 Result of test 1998-5-20 null
00013243 null null null null null null null null 00583 Result of test 1999-5-20 null
00013243 null null null null null null null null 00781 Result of test 2000-5-20 null
00013243 null null null null null null null null 00583 Result of test 2001-5-20 null
00013243 null null null null null null null null 00164 Result of test 2002-5-20 null
00013243 null null null null null null null null null null null 0000940071
我要用准确的数据填充所有空值。喜欢:
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00096360 7 1999-1-23 2000-1-23 00796 Result of test 1999-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00024244 7 2000-1-23 2001-1-23 00924 Result of test 2000-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00054795 3 2001-1-23 2002-1-23 00781 Result of test 2001-1-23 0000973218
00047880 0002 Sympton of ALL 1999-1-23 2003-12-31 00063682 4 2002-1-23 2003-1-23 00314 Result of test 2002-1-23 0000973218
即使行数没有减少,但我希望这些数据以某种方式被填满。这真的让我很困惑,我尝试了很多方法,但没有任何效果。因此,如果我在画面中将其可视化,它会显示患有特定疾病的人只服用了一种药物,其余药物被发送到 NULL 值。
让我们假设您的数据是这样的
在 R 中你可以这样做
df <- read.table(text = "Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
aa bb cc dd ee ff gg hh ii jj
aa null null null null null null null null null
aa null kk ll null null null null null oo
null null null null null null null null null mm", header = T)
#1
df[df == 'null'] <- NA
#2
tidyr::fill(df, everything(), .direction = "down")
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10
1 aa bb cc dd ee ff gg hh ii jj
2 aa bb cc dd ee ff gg hh ii jj
3 aa bb kk ll ee ff gg hh ii oo
4 aa bb kk ll ee ff gg hh ii mm
在Excel中这样做
- Select 并将所有
null
替换为空格
- select 第一个空格,输入带有
=A5
的公式,即引用其正上方的单元格。 - 复制这个公式
- select 所有数据,
find & replace
->go to special
->blanks
-> ctrl + V 即粘贴和你完成了。
注意:Tableau 并非用于数据整理,我相信它也可以通过其他方法完成