我有一个包含各种血液学值及其收集时间的数据框。这些值只能在特定时间收集,但偶尔会添加一个额外的值。我想删除在计划时间之外收集值的任何实例。
为了说明这个问题,这里有一些代码来创建我正在使用的数据框的一个非常简化的版本(加上一些示例时间表):
example <- tibble("Parameter" = c(rep("hgb", 3), rep("bili", 3), rep("LDH", 3)),
"Collection" = c(1, 3, 4, 1, 5, 6, 0, 4, 8))
hgb_sampling <- c(1, 4)
bili_sampling <- c(1, 5)
ldh_sampling <- c(0, 4)
Run Code Online (Sandbox Code Playgroud)
因此,我需要一种方法来根据 Parameter 列中的值有条件地应用过滤器。该解决方案需要适合 dyplr 管道并产生如下内容:
filtered <- tibble("Parameter" = c(rep("hemoglobin", 2), rep("bilirubin", 2), rep("LDH", 2)),
"Collection" = c(1, 4, 1, 5, 0, 4))
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几件事(它们都类似于下面的内容),但是“参数”的使用会使事情出错:
df <- example %>%
{if (Parameter == "hgb") filter(., Collection %in% hgb_sampling)}
Run Code Online (Sandbox Code Playgroud)
有什么建议?
您好,欢迎回答我的问题。
我想创建一个基于位置的唯一数字标识符列表,以表示数据框中值列中项目的位置。
这是我想要的示例(在列中Position
):
tibble(Fruit = c(rep("Apple", 3), rep("Pear", 2), rep("Orange", 4)),
Variety = c("Gala", "Envy", "Pink Lady", "Anjou", "Bartlett", "Blood", "Seville", "Mandarin", "Bergamot"),
Position = c(1.1, 1.2, 1.3, 2.1, 2.2, 3.1, 3.2, 3.3, 3.4))
Run Code Online (Sandbox Code Playgroud)
如您所见,标识符的整数值表示Fruit
,而小数值表示Variety
。
我想要一种方法来创建这些唯一的位置标识符以在另一个项目中使用(使用 ganttrify,一个优秀但特殊的函数)。dplyr 友好解决方案的奖励积分。