【发布时间】:2021-10-17 18:55:59
【问题描述】:
在 mutate 函数中,使用 case_when 获取对变量的多个响应,要求我们将一系列年份转换为特定的十年,例如:1970 年的所有年份都将变为“1970 年代”,以此类推 1980, 1960 年和 1950 年如何编写代码而不必每年都编写?在这种情况下我可以使用 between 吗?
我写的代码(不知道行不行):
mutate (wdsf, decades = case_when (year <= 1950 ~ "1950s and below",
year == 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969 ~
"1960s",
year == 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979 ~
"1970s",
year == 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989 ~
"1980s")
【问题讨论】:
-
在这种情况下,您甚至可以只使用
<=,利用评估案例的顺序。例如,a <- 1:10; case_when(a <= 3 ~ 'one', a <= 6 ~ 'two', a <= 10 ~ 'three')。虽然,人们不同意这是更好还是更糟。偏好问题