作者celestialgod (天)
看板R_Language
标题Re: [问题] 资料整理问题
时间Wed Sep 13 20:43:02 2017
※ 引述《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
: 恳请教导,感谢~
: -----
: Sent from JPTT on my Asus ASUS_Z012DA.
套件做法:
library(data.table)
library(pipeR)
DT <- data.table(time = c("01:00", "02:00", "03:00", "04:00", "05:00"),
characters = c("asjejeldk", "dwewgw", "lefweg", "ers",
"qaqasdfd"))
# 1.
DT[ , .(character = unlist(tstrsplit(characters, ""))), by = .(time)][ ,
.(characters = paste(unique(character), collapse = "")), by = .(time)]
# time characters
# 1: 01:00 asjeldk
# 2: 02:00 dweg
# 3: 03:00 lefwg
# 4: 04:00 ers
# 5: 05:00 qasdf
# 2.
DT[ , .(character = unlist(tstrsplit(characters, ""))), by = .(time)][ ,
.(cnt = .N), by = .(time, character)]
# time character cnt
# 1: 01:00 a 1
# 2: 01:00 s 1
# 3: 01:00 j 2
# 4: 01:00 e 2
# 5: 01:00 l 1
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.170.62.243
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1505306585.A.FCC.html
※ 编辑: celestialgod (118.170.62.243), 09/13/2017 20:43:36
1F:推 tony1331: 不好意思 我表达有问题 让您误会了 我改一下~ 09/13 20:54
2F:推 tony1331: c大 我改了 麻烦在给与教导,谢谢 09/13 21:03