R 基于列变量删除第一行
如何删除每个新变量的第一行?例如,以下是一些数据:R 基于列变量删除第一行,r,R,如何删除每个新变量的第一行?例如,以下是一些数据: m <- c("a","a","a","a","a","b","b","b","b","b") n <- c('x','y','x','y','x','y',"x","y",'x',"y") o <- c(1:10) z <- data.frame(m,n,o) 谢谢。data.table是R中大型数据集的首选。setDT通过引用将z数据帧转换为数据表。按m分组并删除第一行 library('data.table
m <- c("a","a","a","a","a","b","b","b","b","b")
n <- c('x','y','x','y','x','y',"x","y",'x',"y")
o <- c(1:10)
z <- data.frame(m,n,o)
谢谢。data.table是R中大型数据集的首选。
setDT
通过引用将z
数据帧转换为数据表。按m
分组并删除第一行
library('data.table')
setDT(z)[, .SD[-1], by = "m"]
data.table优先用于R中的大型数据集。
setDT
通过引用将z
数据帧转换为数据表。按m
分组并删除第一行
library('data.table')
setDT(z)[, .SD[-1], by = "m"]
使用包装dplyr中的
分组依据
和行编号
:
z %>%
group_by(m) %>%
filter(row_number(o)!=1)
使用包装dplyr中的
分组依据
和行编号
:
z %>%
group_by(m) %>%
filter(row_number(o)!=1)
只需使用重复的
:
z[duplicated(z$m),]
# m n o
#2 a y 2
#3 a x 3
#4 a y 4
#5 a x 5
#7 b x 7
#8 b y 8
#9 b x 9
#10 b y 10
为什么会这样?考虑:
duplicated("a")
#[1] FALSE
duplicated(c("a","a"))
#[1] FALSE TRUE
只需使用重复的:
z[duplicated(z$m),]
# m n o
#2 a y 2
#3 a x 3
#4 a y 4
#5 a x 5
#7 b x 7
#8 b y 8
#9 b x 9
#10 b y 10
为什么会这样?考虑:
duplicated("a")
#[1] FALSE
duplicated(c("a","a"))
#[1] FALSE TRUE
请参见?duplicated
-即duplicated(z$m)
为您提供了一个可用于选择的逻辑向量。我不确定我是否遵循了。这些条目不重复。请参见?duplicated
-即duplicated(z$m)
为您提供了一个可用于选择的逻辑向量。我不确定是否遵循。这些条目不是重复的。z[z[,.I[-1],by=m]$V1]
可能是重复的faster@RichScriven-不久前,.SD[n]
没有得到优化吗?是吗?我可能错过了。@RichScriven-我现在似乎找不到它的引用-可能是我想象出来的。z[z[,.I[-1],by=m]$V1]
可能是faster@RichScriven-不久前,.SD[n]
没有得到优化吗?是吗?我可能错过了。@RichScriven-我现在似乎找不到它的参照物-也许是我想象出来的。我不知道谁的dv'd,但这是辉煌的我不知道谁的dv'd,但这是辉煌的