如何将整个数据集中的值编码为 NA
How to code values across the whole dataset as NA
我有一个数据集,其中 "-2" 或 "-1" 代表 NA。我能够以这种方式重新编码每一列,但我无法在整个数据集中有效地做到这一点。我知道这个问题可能有一个简单的解决方案,但到目前为止我还没有找到。谁能帮帮我?
这是我的数据
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25), Datum = structure(c(1650326400,
1650326400, 1650931200, 1651104000, 1651104000, 1651104000, 1651104000,
1651104000, 1651190400, 1651449600, 1651536000, 1651536000, 1651622400,
1651622400, 1651622400, 1652054400, 1652140800, 1652140800, 1652140800,
1652140800, 1652227200, 1652227200, 1652227200, 1652313600, 1652400000
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), `Frage 2 - Bitte wählen Sie Ihren Standort.` = c("Kreis Nordfriesland",
"Kreis Nordfriesland", "Landesamt für Zuwanderung und Flüchtlinge",
"Landesamt für Zuwanderung und Flüchtlinge", "Kreis Rendsburg-Eckernförde",
"Kreis Rendsburg-Eckernförde", "Kreis Rendsburg-Eckernförde",
"-1", "Stadt Neumünster", "-1", "Kreis Stormarn", "Kreis Herzogtum Lauenburg",
"Stadt Kiel", "Kreis Rendsburg-Eckernförde", "-1", "Kreis Dithmarschen",
"-1", "Kreis Dithmarschen", "Kreis Dithmarschen", "Kreis Dithmarschen",
"Kreis Dithmarschen", "Kreis Dithmarschen", "Stadt Lübeck", "Kreis Rendsburg-Eckernförde",
"Kreis Dithmarschen"), `Frage 3 - Bitte wählen Sie Ihre Position.` = c("Sachgebietsleitung",
"Sachgebietsleitung", "Teamleitung", "Sachgebietsleitung", "Mitarbeitende*r",
"Teamleitung", "Mitarbeitende*r", "-1", "Mitarbeitende*r", "-1",
"Sachgebietsleitung", "Sachgebietsleitung", "Sachgebietsleitung",
"Mitarbeitende*r", "-1", "Sachgebietsleitung", "-1", "Teamleitung",
"Mitarbeitende*r", "Mitarbeitende*r", "Mitarbeitende*r", "Mitarbeitende*r",
"Teamleitung", "Mitarbeitende*r", "Mitarbeitende*r"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Mensch` = c("-1",
"-1", "-1", "-1", "Mensch", "Mensch", "-1", "-2", "Mensch", "-2",
"Mensch", "Mensch", "-1", "-1", "-2", "-1", "-2", "-1", "-1",
"Mensch", "Mensch", "-1", "Mensch", "-1", "Mensch"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Entscheidungen` = c("-1",
"-1", "-1", "-1", "Entscheidungen", "Entscheidungen", "-1", "-2",
"Entscheidungen", "-2", "Entscheidungen", "Entscheidungen", "-1",
"-1", "-2", "-1", "-2", "-1", "-1", "-1", "-1", "Entscheidungen",
"Entscheidungen", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Handeln` = c("-1",
"Handeln", "-1", "-1", "-1", "-1", "Handeln", "-2", "Handeln",
"-2", "Handeln", "-1", "-1", "-1", "-2", "-1", "-2", "-1", "-1",
"-1", "Handeln", "-1", "Handeln", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Transparenz` = c("-1",
"-1", "-1", "-1", "-1", "-1", "-1", "-2", "Transparenz", "-2",
"-1", "-1", "-1", "-1", "-2", "-1", "-2", "-1", "Transparenz",
"-1", "Transparenz", "-1", "-1", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Vernetzung` = c("-1",
"-1", "-1", "Vernetzung", "-1", "-1", "Vernetzung", "-2", "Vernetzung",
"-2", "-1", "-1", "-1", "-1", "-2", "Vernetzung", "-2", "Vernetzung",
"Vernetzung", "-1", "Vernetzung", "Vernetzung", "Vernetzung",
"-1", "Vernetzung"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Abläufe & Prozesse` = c("-1",
"-1", "-1", "Abläufe & Prozesse", "-1", "Abläufe & Prozesse",
"-1", "-2", "Abläufe & Prozesse", "-2", "Abläufe & Prozesse",
"-1", "-1", "-1", "-2", "-1", "-2", "-1", "Abläufe & Prozesse",
"-1", "-1", "-1", "-1", "-1", "Abläufe & Prozesse")), row.names = c(NA,
-25L), class = c("tbl_df", "tbl", "data.frame"))
这个怎么样?使用 tidyverse
和 na_if
:
# library(tidyverse) # to load all packages at once!
library(dplyr) # mutate, pipe, etc
library(tibble) # tibble/tribble
library(tidyr) # na_if
df <- tribble(
~id, ~q1, ~q2,
-1, -1, "-1",
-2, 1, "A",
-3, 3, "B"
)
df
#> # A tibble: 3 x 3
#> id q1 q2
#> <dbl> <dbl> <chr>
#> 1 -1 -1 -1
#> 2 -2 1 A
#> 3 -3 3 B
df2 <- df %>% mutate(across(-id, na_if, y = -1))
df2
#> # A tibble: 3 x 3
#> id q1 q2
#> <dbl> <dbl> <chr>
#> 1 -1 NA <NA>
#> 2 -2 1 A
#> 3 -3 3 B
由 reprex package (v2.0.1)
于 2022-05-16 创建
我认为 David 的解决方案是一个很好的解决方案,但如果您愿意重新编码所有列,那么 na_if()
接受一个数据框,所以它更简单:
library(dplyr)
mydata |>
na_if(-1) |>
na_if(-2)
如果您有两个以上的值要替换,我将不支持使用 na_if()
调用的大链,而更愿意使用 mutate(across())
和 recode.
如果您希望一次调用所有内容,我会使用更灵活的 replace
、across
所有列:
library(dplyr)
df %>%
mutate(across(everything(), ~ replace(., . %in% c(-1, -2), NA)))
在基数 R 中:
df <- lapply(df, \(x) replace(x, x %in% -1:-2, NA))
我有一个数据集,其中 "-2" 或 "-1" 代表 NA。我能够以这种方式重新编码每一列,但我无法在整个数据集中有效地做到这一点。我知道这个问题可能有一个简单的解决方案,但到目前为止我还没有找到。谁能帮帮我?
这是我的数据
structure(list(ID = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25), Datum = structure(c(1650326400,
1650326400, 1650931200, 1651104000, 1651104000, 1651104000, 1651104000,
1651104000, 1651190400, 1651449600, 1651536000, 1651536000, 1651622400,
1651622400, 1651622400, 1652054400, 1652140800, 1652140800, 1652140800,
1652140800, 1652227200, 1652227200, 1652227200, 1652313600, 1652400000
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), `Frage 2 - Bitte wählen Sie Ihren Standort.` = c("Kreis Nordfriesland",
"Kreis Nordfriesland", "Landesamt für Zuwanderung und Flüchtlinge",
"Landesamt für Zuwanderung und Flüchtlinge", "Kreis Rendsburg-Eckernförde",
"Kreis Rendsburg-Eckernförde", "Kreis Rendsburg-Eckernförde",
"-1", "Stadt Neumünster", "-1", "Kreis Stormarn", "Kreis Herzogtum Lauenburg",
"Stadt Kiel", "Kreis Rendsburg-Eckernförde", "-1", "Kreis Dithmarschen",
"-1", "Kreis Dithmarschen", "Kreis Dithmarschen", "Kreis Dithmarschen",
"Kreis Dithmarschen", "Kreis Dithmarschen", "Stadt Lübeck", "Kreis Rendsburg-Eckernförde",
"Kreis Dithmarschen"), `Frage 3 - Bitte wählen Sie Ihre Position.` = c("Sachgebietsleitung",
"Sachgebietsleitung", "Teamleitung", "Sachgebietsleitung", "Mitarbeitende*r",
"Teamleitung", "Mitarbeitende*r", "-1", "Mitarbeitende*r", "-1",
"Sachgebietsleitung", "Sachgebietsleitung", "Sachgebietsleitung",
"Mitarbeitende*r", "-1", "Sachgebietsleitung", "-1", "Teamleitung",
"Mitarbeitende*r", "Mitarbeitende*r", "Mitarbeitende*r", "Mitarbeitende*r",
"Teamleitung", "Mitarbeitende*r", "Mitarbeitende*r"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Mensch` = c("-1",
"-1", "-1", "-1", "Mensch", "Mensch", "-1", "-2", "Mensch", "-2",
"Mensch", "Mensch", "-1", "-1", "-2", "-1", "-2", "-1", "-1",
"Mensch", "Mensch", "-1", "Mensch", "-1", "Mensch"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Entscheidungen` = c("-1",
"-1", "-1", "-1", "Entscheidungen", "Entscheidungen", "-1", "-2",
"Entscheidungen", "-2", "Entscheidungen", "Entscheidungen", "-1",
"-1", "-2", "-1", "-2", "-1", "-1", "-1", "-1", "Entscheidungen",
"Entscheidungen", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Handeln` = c("-1",
"Handeln", "-1", "-1", "-1", "-1", "Handeln", "-2", "Handeln",
"-2", "Handeln", "-1", "-1", "-1", "-2", "-1", "-2", "-1", "-1",
"-1", "Handeln", "-1", "Handeln", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Transparenz` = c("-1",
"-1", "-1", "-1", "-1", "-1", "-1", "-2", "Transparenz", "-2",
"-1", "-1", "-1", "-1", "-2", "-1", "-2", "-1", "Transparenz",
"-1", "Transparenz", "-1", "-1", "-1", "-1"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Vernetzung` = c("-1",
"-1", "-1", "Vernetzung", "-1", "-1", "Vernetzung", "-2", "Vernetzung",
"-2", "-1", "-1", "-1", "-1", "-2", "Vernetzung", "-2", "Vernetzung",
"Vernetzung", "-1", "Vernetzung", "Vernetzung", "Vernetzung",
"-1", "Vernetzung"), `Frage 5 - Unabhängig von der möglichen Entwicklung im Rahmen des Projektes - In welchen Leitbildbereichen sehen Sie sich selbst unter den Behörden der Zuwanderungsverwaltung als Positivbeispiel und könnten sich vorstellen, anderen Zuwanderungs-/Ausländerbehörden im Austausch davon zu berichten/Fragen zu beantworten? - Abläufe & Prozesse` = c("-1",
"-1", "-1", "Abläufe & Prozesse", "-1", "Abläufe & Prozesse",
"-1", "-2", "Abläufe & Prozesse", "-2", "Abläufe & Prozesse",
"-1", "-1", "-1", "-2", "-1", "-2", "-1", "Abläufe & Prozesse",
"-1", "-1", "-1", "-1", "-1", "Abläufe & Prozesse")), row.names = c(NA,
-25L), class = c("tbl_df", "tbl", "data.frame"))
这个怎么样?使用 tidyverse
和 na_if
:
# library(tidyverse) # to load all packages at once!
library(dplyr) # mutate, pipe, etc
library(tibble) # tibble/tribble
library(tidyr) # na_if
df <- tribble(
~id, ~q1, ~q2,
-1, -1, "-1",
-2, 1, "A",
-3, 3, "B"
)
df
#> # A tibble: 3 x 3
#> id q1 q2
#> <dbl> <dbl> <chr>
#> 1 -1 -1 -1
#> 2 -2 1 A
#> 3 -3 3 B
df2 <- df %>% mutate(across(-id, na_if, y = -1))
df2
#> # A tibble: 3 x 3
#> id q1 q2
#> <dbl> <dbl> <chr>
#> 1 -1 NA <NA>
#> 2 -2 1 A
#> 3 -3 3 B
由 reprex package (v2.0.1)
于 2022-05-16 创建我认为 David 的解决方案是一个很好的解决方案,但如果您愿意重新编码所有列,那么 na_if()
接受一个数据框,所以它更简单:
library(dplyr)
mydata |>
na_if(-1) |>
na_if(-2)
如果您有两个以上的值要替换,我将不支持使用 na_if()
调用的大链,而更愿意使用 mutate(across())
和 recode.
如果您希望一次调用所有内容,我会使用更灵活的 replace
、across
所有列:
library(dplyr)
df %>%
mutate(across(everything(), ~ replace(., . %in% c(-1, -2), NA)))
在基数 R 中:
df <- lapply(df, \(x) replace(x, x %in% -1:-2, NA))