첫 번째 열이 NA이거나 ""인 행을 제외하도록 각 데이터 프레임의 하위 집합을 만들려고합니다. 데이터 프레임을 df
목록에 넣은 다음 각 데이터 프레임에 lapply
을 사용했습니다. 코드가 작동하지만 각 데이터 프레임을 하위 집합으로 덮어 쓰는 방법을 모르겠습니다. 다음과 같이 결국 dfs를 부분 집합 및 덮어 쓸 데이터 프레임 목록에 적용
df1 <- data.frame(v1=c(1, 2, 3, NA, NA, NA), v2=rep(1, 6))
df2 <- data.frame(v11=c(2, 3, 4, 5, NA, ""), v22=rep(1, 6))
df3 <- data.frame(v111=c(3, 4, 5, 6, 7, NA), v222=rep(1, 6))
df <- list(df1=df1, df2=df2, df3=df3)
df
$df1
# v1 v2
# 1 1 1
# 2 2 1
# 3 3 1
# 4 NA 1
# 5 NA 1
# 6 NA 1
#
# $df2
# v11 v22
# 1 2 1
# 2 3 1
# 3 4 1
# 4 5 1
# 5 <NA> 1
# 6 1
#
# $df3
# v111 v222
# 1 3 1
# 2 4 1
# 3 5 1
# 4 6 1
# 5 7 1
# 6 NA 1
lapply(names(df), function(x) df[[x]][!(is.na(df[[x]][,1]) | df[[x]][,1]==""), ])
# [[1]]
# v1 v2
# 1 1 1
# 2 2 1
# 3 3 1
#
# [[2]]
# v11 v22
# 1 2 1
# 2 3 1
# 3 4 1
# 4 5 1
#
# [[3]]
# v111 v222
# 1 3 1
# 2 4 1
# 3 5 1
# 4 6 1
# 5 7 1
, 나는 것으로, 예를 들어,
df3
원하는 :
df3
# v111 v222
#1 3 1
#2 4 1
#3 5 1
#4 6 1
#5 7 1
좋은 질문을 사용할 수 있습니다. 나는 그것으로부터 몇 가지 것을 배웠다. –