Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- > dat <- c("Aa, 1", "Aa, 2", "Ha, 1", "Hpa, 8")
- > read.csv(text = dat, header=FALSE, col.names = c("Trial.Type", "Intensity"))
- Trial.Type Intensity
- 1 Aa 1
- 2 Aa 2
- 3 Ha 1
- 4 Hpa 8
- mydf <- data.frame(A = factor(c("1, Z", "2, Y", "3, X", "4, W")),
- B = c("11, ZZ", "22, YY", "33, XX", "44, WW"),
- C = c(123, 234, 345, 456), stringsAsFactors = FALSE)
- mydf
- # A B C
- # 1 1, Z 11, ZZ 123
- # 2 2, Y 22, YY 234
- # 3 3, X 33, XX 345
- # 4 4, W 44, WW 456
- str(mydf)
- # 'data.frame': 4 obs. of 3 variables:
- # $ A: Factor w/ 4 levels "1, Z","2, Y",..: 1 2 3 4
- # $ B: chr "11, ZZ" "22, YY" "33, XX" "44, WW"
- # $ C: num 123 234 345 456
- library(splitstackshape)
- ## Split a factor column
- concat.split(mydf, split.col = "A", sep = ",")
- # A B C A_1 A_2
- # 1 1, Z 11, ZZ 123 1 Z
- # 2 2, Y 22, YY 234 2 Y
- # 3 3, X 33, XX 345 3 X
- # 4 4, W 44, WW 456 4 W
- ## Split a character column
- concat.split(mydf, split.col = "B", sep = ",")
- # A B C B_1 B_2
- # 1 1, Z 11, ZZ 123 11 ZZ
- # 2 2, Y 22, YY 234 22 YY
- # 3 3, X 33, XX 345 33 XX
- # 4 4, W 44, WW 456 44 WW
- ## Split two columns in one go
- concat.split.multiple(mydf, split.cols = c("A", "B"), seps = ",")
- # C A_1 A_2 B_1 B_2
- # 1 123 1 Z 11 ZZ
- # 2 234 2 Y 22 YY
- # 3 345 3 X 33 XX
- # 4 456 4 W 44 WW
- dat = c("Aa, 1", "Aa, 2", "Ha, 1", "Hpa, 8")
- spl = strsplit(dat, ", ")
- data.frame(Trial.Type = unlist(lapply(spl, "[", 1)),
- Intensity = as.numeric(unlist(lapply(spl, "[", 2))))
- # Trial.Type Intensity
- # 1 Aa 1
- # 2 Aa 2
- # 3 Ha 1
- # 4 Hpa 8
- datNames <- names(dat)
- dat <- cbind(t(matrix(unlist(strsplit(dat$Trial.type, ", ")),ncol=dim(dat)[1])))
- names(dat) <- c(datNames,"Trial.type2","Intensity")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement