Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- x <- c(0, 1000, 50000)
- df <- data.frame(ID = seq(1:8), z = c("A", "A", "C", NA, "B", "A", NA, NA))
- ID z
- 1 1 A
- 2 2 A
- 3 3 C
- 4 4 <NA>
- 5 5 B
- 6 6 A
- 7 7 <NA>
- 8 8 <NA>
- ID z y
- 1 1 A 0
- 2 2 A 0
- 3 3 C 50000
- 4 4 NA NA
- 5 5 B 1000
- 6 6 A 0
- 7 7 NA NA
- 8 8 NA NA
- df$y[which(df$z == "A")] <- x[1]
- df$y[which(df$z == "B")] <- x[2]
- df$y[which(df$z == "C")] <- x[3]
- set.seed(84)
- df <- data.frame(z = sample(LETTERS[1:11], 15, replace = TRUE))
- x <- c(0,1000,50000)
- df$y <- ifelse(df$z == "A", x[1], ifelse(df$z == "B", x[2], ifelse(df$z == "C", x[3], NA)))
- df
- # z y
- # 1 I NA
- # 2 D NA
- # 3 J NA
- # 4 I NA
- # 5 C 50000
- # 6 C 50000
- # 7 B 1000
- # 8 D NA
- # 9 G NA
- # 10 B 1000
- # 11 I NA
- # 12 K NA
- # 13 J NA
- # 14 K NA
- # 15 A 0
- df$y <- x[match(df$z, c("A", "B", "C"))]
- df
- # ID z y
- # 1 1 A 0
- # 2 2 A 0
- # 3 3 C 50000
- # 4 4 D NA
- # 5 5 B 1000
- # 6 6 A 0
- # 7 7 H NA
- # 8 8 E NA
- df$y <- x[as.numeric(df$z)]
- df$y <- x[as.numeric(factor(df$z))]
- head(df)
- # ID z y
- #1 1 C 50000
- #2 2 B 1000
- #3 3 H NA
- #4 4 F NA
- #5 5 G NA
- #6 6 K NA
- set.seed(24)
- df <- data.frame(ID=1:40, z=sample(c(NA, LETTERS[1:11]), 40, replace=TRUE))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement