R 如何在跳过第1列和第3行的同时删除()中的所有内容
我有一个data.frame,看起来像这样: 我想从col2-3中删除R 如何在跳过第1列和第3行的同时删除()中的所有内容,r,R,我有一个data.frame,看起来像这样: 我想从col2-3中删除()中的任何内容并跳过第3行。我该怎么办。 目前我可以为col部分做部分,但不知道如何跳过第3行。这是我的密码: 可以使用以下代码生成示例数据: df<-structure(list(Name = c("Patient Number", "Patients with fever", "AEDECOD", "DIARRHOEA", &quo
()
中的任何内容并跳过第3行。我该怎么办。
目前我可以为col部分做部分,但不知道如何跳过第3行。这是我的密码:
可以使用以下代码生成示例数据:
df<-structure(list(Name = c("Patient Number", "Patients with fever",
"AEDECOD", "DIARRHOEA", "NAUSEA"), Score1 = c("159 (100%)", "159",
"Total", "131 (82.39%)", "92 (57.86%)"), Score2 = c("3", "3",
"test2", "2 (66.67%)", "2 (66.67%)"), Score3 = c("3", "3", "test3",
"2 (66.67%)", "1 (33.33%)")), row.names = c(NA, -5L), class = c("tbl_df",
"tbl", "data.frame"))
df编辑:我遗漏了问题的“跳过第3行”部分,部分原因是它仍在示例输出中,因此不清楚您的意思。我在问题的末尾添加了一个过滤器
您使用mutate(cross())
的想法是正确的。您可以使用gsub
替换“括号中的空格后跟任何内容”:
结果。请注意,这些列是字符类型,因为您有混合文本+数字。删除第3行后,您可能希望使用as.numeric()
进行变异
# A tibble: 5 x 4
Name Score1 Score2 Score3
<chr> <chr> <chr> <chr>
1 Patient Number 159 3 3
2 Patients with fever 159 3 3
3 AEDECOD Total test2 test3
4 DIARRHOEA 131 2 2
5 NAUSEA 92 2 1
结果:
# A tibble: 4 x 4
Name Score1 Score2 Score3
<chr> <dbl> <dbl> <dbl>
1 Patient Number 159 3 3
2 Patients with fever 159 3 3
3 DIARRHOEA 131 2 2
4 NAUSEA 92 2 1
#一个tible:4 x 4
姓名分数1分数2分数3
1病人编号1593 3
2名发烧病人1593 3
3腹泻131 2
4.922.1
df %>%
mutate(across(starts_with("Score"), ~gsub("\\s+\\(.*?\\)", "", .x))) %>%
# or slice(-3) instead of next line %>%
filter(Name != "AEDECOD") %>%
mutate(across(starts_with("Score"), ~as.numeric(.x)))
# A tibble: 4 x 4
Name Score1 Score2 Score3
<chr> <dbl> <dbl> <dbl>
1 Patient Number 159 3 3
2 Patients with fever 159 3 3
3 DIARRHOEA 131 2 2
4 NAUSEA 92 2 1