我有以下 df:
name color
A red
B red
C green
D red
E red
F red
Run Code Online (Sandbox Code Playgroud)
我想测试“颜色”列中的值,看看它们是否与上面行中的值相同并写入新列......我可以使用以下方法:
> df$same <- ifelse(df$color == df$color[c(NA,1:(nrow(df)-1))], 1, 0)
Run Code Online (Sandbox Code Playgroud)
给我:
name color same
A red NA
B red 1
C green 0
D red 0
E red 1
F red 1
Run Code Online (Sandbox Code Playgroud)
但是有没有更干净的方法来做到这一点?(我经常用这个)...
如果我有一个df:
letter body_part
a head
b head
c NA
d NA
e left_foot
Run Code Online (Sandbox Code Playgroud)
而且我想把它分成2个dfs ......一个只有body_part - "head"而另一个只有其他东西.即
list < - split(df,df $ body_part =='head')
我可以不丢弃NA行吗?(我知道如果我用字符串填充NA,我可以做到,但有没有办法避免这一步?)