※ 引述《tony1331 (BLUE)》之銘言:
: [問題類型]:
: 我想用R 做某件事情,但是我不知道要怎麼用R 寫出來
: [軟體熟悉度]:
: S寫過程式,R 是我的第一次
: [問題敘述]:
: 01:00 a s j e j e l d k
: 02:00 d w e w g w
: 03:00 l e f w e g
: 04:00 e r s
: ..
: ..
: ..
: 一個data.frame 時間後面號碼,每列不一
: 有重複
: (1) 請問大家要怎麼讓每列的號碼沒有重附,用unique好像不行
不知道你怎麼存那些character,先假設你用字串把它們combine再一起
DF <- data.frame(time = c("01:00", "02:00", "03:00", "04:00", "05:00"),
characters = c("asjejeldk", "dwewgw", "lefweg", "ers",
"qaqasdfd"),
stringsAsFactors = FALSE)
transform(DF, characters = lapply(strsplit(characters, ""), unique))
# time characters
# 1 01:00 a, s, j, e, l, d, k
# 2 02:00 d, w, e, g
# 3 03:00 l, e, f, w, g
# 4 04:00 e, r, s
# 5 05:00 q, a, s, d, f
: (2) 有什麼方法讓a b c ...這些號碼可以整理成在哪個時間出現幾次
是unique後取? 這樣就是每個都一次阿,下面用沒unique方式做:
DF3 <- transform(DF, characters = strsplit(characters, ""))
DF4 <- data.frame(time = unlist(mapply(function(x, y) rep(x, length(y)),
DF3$time, DF3$characters)),
character = unlist(DF3$characters), stringsAsFactors = FALSE)
aggregate(rep(1, nrow(DF4))~ character + time, DF4, length)
# 前五筆
# character time rep(1, nrow(DF4))
# 1 a 01:00 1
# 2 d 01:00 1
# 3 e 01:00 2
# 4 j 01:00 2
# 5 k 01:00 1
: 懇請教導,感謝~
: