我有一个很大的调查响应数据集,我有困难清理。
原来,数据看起来是这样的。每一个颜色和答案选择的组合都有一栏,其值是他们给出的答案选择的排名,如果他们把“其他”作为他们的选择之一,则有一个“其他”栏,其中有一个他们写的文本回应:
# A tibble: 11 x 8
responseid color red_q1_a red_q1_b red_q1_c red_q1_other red_q1_other_answer blue_q1_a
<dbl> <chr> <dbl> <dbl> <dbl> <dbl> <chr> <dbl>
1 34 red 2 1 NA 3 "Pomegranates" NA
2 35 blue NA NA NA NA NA 1
3 36 green NA NA NA NA NA NA
4 37 purple NA NA NA NA NA NA
5 38 red 1 NA 3 2 "Watermelon" NA
6 39 green NA NA NA NA NA NA
7 40 purple NA NA NA NA NA NA
8 41 blue NA NA NA NA NA NA
9 42 blue NA NA NA NA NA 2
10 43 green NA NA NA NA NA NA
11 44 red 1 3 2 NA NA NA
对于第一个问题,我设法清理了数据,使其看起来如下所示:
# A tibble: 11 x 6
responseid color q1_first_choice q1_second_choice q1_third_choice q1_other_answer
<dbl> <chr> <chr> <chr> <chr> <chr>
1 34 red q1_red_b q1_red_a q1_red_other "Pomegranate"
2 35 blue q1_blue_a q1_blue_c q1_blue_b NA
3 36 green q1_green_other q1_green_b q1_green_a "Tangerine"
4 37 purple q1_purple_b q1_purple_a q1_purple_c NA
5 38 red q1_red_a q1_red_other q1_red_c "Watermelon"
6 39 green q1_green_a q1_green_c q1_green_b NA
7 40 purple q1_purple_b q1_purple_a q1_purple_c NA
8 41 blue q1_blue_c q1_blue_a q1_blue_other "Blueberries"
9 42 blue q1_blue_a q1_blue_c q1_blue_b NA
10 43 green q1_green_c q1_green_b q1_green_a NA
11 44 red q1_red_b q1_red_a q1_red_c NA
我有两个额外的步骤我想采取,但我不确定如何进行有效的他们。首先,我想用写入文本值替换任何“其他”选项的排序选项,因此看起来如下所示:
responseid color q1_first_choice q1_second_choice q1_third_choice
34 red q1_red_b q1_red_a "Pomegranate"
35 blue q1_blue_c q1_blue_a q1_blue_b
36 green "Tangerine" q1_green_b q1_green_a
37 purple q1_purple_b q1_purple_a q1_purple_c
38 red q1_red_a "Watermelon" q1_red_c
39 green q1_green_a q1_green_c q1_green_b
40 purple q1_purple_b q1_purple_a q1_purple_c
41 blue q1_blue_c q1_blue_b "Blueberries"
42 blue q1_blue_a q1_blue_c q1_blue_b
43 green q1_green_c q1_green_b q1_green_a
44 red q1_red_b q1_red_a q1_red_c
你能把你的第二个问题作为一个单独的问题来问吗?最好让每个问题都保持独立,这样以后的读者就更容易找到每个具体问题的解决方案。
对于第一个问题,方法是使用if_else()
,其中如果包含单词“other”(使用str_detect()
),则替换为Q1_other_answer
,否则保持原样。然后使用mutate_at()
将其应用于所需的变量。
library(tidyverse)
mydf <- tribble(
~responseid, ~color, ~q1_first_choice, ~q1_second_choice, ~q1_third_choice, ~q1_other_answer,
34, "red " , "q1_red_b " , "q1_red_a " , "q1_red_other " , "Pomegranate" ,
35, "blue " , "q1_blue_a " , "q1_blue_c " , "q1_blue_b " , NA ,
36, "green " , "q1_green_other" , "q1_green_b " , "q1_green_a " , "Tangerine" ,
37, "purple" , "q1_purple_b " , "q1_purple_a " , "q1_purple_c " , NA ,
38, "red " , "q1_red_a " , "q1_red_other" , "q1_red_c " , "Watermelon" ,
39, "green " , "q1_green_a " , "q1_green_c " , "q1_green_b " , NA ,
40, "purple" , "q1_purple_b " , "q1_purple_a " , "q1_purple_c " , NA ,
41, "blue " , "q1_blue_c " , "q1_blue_a " , "q1_blue_other" , "Blueberries" ,
42, "blue " , "q1_blue_a " , "q1_blue_c " , "q1_blue_b " , NA ,
43, "green " , "q1_green_c " , "q1_green_b " , "q1_green_a " , NA ,
44, "red " , "q1_red_b " , "q1_red_a " , "q1_red_c " , NA
) %>%
mutate_if(is.character, str_trim)
mutate_at(mydf, vars(ends_with("choice")), ~ if_else(str_detect(., "other"), q1_other_answer, .))
# A tibble: 11 x 6
responseid color q1_first_choice q1_second_choice q1_third_choice q1_other_answer
<dbl> <chr> <chr> <chr> <chr> <chr>
1 34 red q1_red_b q1_red_a Pomegranate Pomegranate
2 35 blue q1_blue_a q1_blue_c q1_blue_b NA
3 36 green Tangerine q1_green_b q1_green_a Tangerine
4 37 purple q1_purple_b q1_purple_a q1_purple_c NA
5 38 red q1_red_a Watermelon q1_red_c Watermelon
6 39 green q1_green_a q1_green_c q1_green_b NA
7 40 purple q1_purple_b q1_purple_a q1_purple_c NA
8 41 blue q1_blue_c q1_blue_a Blueberries Blueberries
9 42 blue q1_blue_a q1_blue_c q1_blue_b NA
10 43 green q1_green_c q1_green_b q1_green_a NA
11 44 red q1_red_b q1_red_a q1_red_c NA
我希望得到您对以下问题和解决方案(潜在)的反馈。 假设有一个可运行的任务,该任务对 CPU 使用情况进行采样并将其写入 CSV 文件。此任务不返回任何结果。这需要安排永久定期执行。如果用户取消任务,我们关闭文件编写器,用户可以下载CSV文件。 当您将这样的任务提交给ListeningScheduledExecutorService(如下所示)时,您将获得一个ListenableScheduledF
问题内容: 我正在尝试包装一些用于Java的旧代码,很高兴看到Swig能够处理头文件,并且生成了一个几乎可以正常工作的出色包装器。现在,我正在寻找使它真正起作用的深层魔术。 CI中的功能看起来像这样 此函数返回的该整数是万一失败的错误代码。参数是 是一个字符缓冲区 是缓冲区中数据的长度 另一个字符缓冲区,其中包含调用DustyVoodoo的结果 因此,您可以看到行进方向,结果实际上是通过第三个参数
与另一个包围盒求并集,得到的也是一个包围盒。 参数 名称 类型 默认值 描述 other zrender.BoundingRect 另一个包围盒。 返回值 新的包围盒,类型:zrender.BoundingRect。
判断两个包围盒是否相交。 参数 名称 类型 默认值 描述 other zrender.BoundingRect 另一个包围盒。 返回值 相交部分的包围盒,类型:zrender.BoundingRect。
从另一个包围盒复制属性。 参数 名称 类型 默认值 描述 other zrender.BoundingRect 另一个包围盒。
To learn more about the Basic Elements To see the full API document in Markdown format, see APIs To contribute to Gio.js's code base, read Developer Guide