2017-09-28 3 views
0

Est-il possible de sélectionner à la fois des champs imbriqués et non imbriqués à partir d'un data.frame?sélectionne les champs imbriqués et non imbriqués à partir d'un data.frame dans R

Par exemple:

df=data.frame(
    a=c(1,2,3) 
    ,b=c(4,5,6) 
) 
nested=data.frame(
    a=c(10,20,30) 
    ,b=c(40,50,60) 
) 
df$nested=nested 

print(df) 
# a b nested.a nested.b 
# 1 4  10  40 
# 2 5  20  50 
# 3 6  30  60 

Je sais que je peux sélectionner les champs non imbriqués cette façon

df[,c("a","b")] 
# a b 
# 1 4 
# 2 5 
# 3 6 

et les champs imbriqués cette autre façon

df$nested[,c("a","b")] 
# a b 
# 10 40 
# 20 50 
# 30 60 

Je voudrais faire sometihng comme ceci:

df_new=df[,c("a","nested$a")] 
# a nested.a 
# 1 10 
# 2 20 
# 3 30 

Répondre

0

On pourrait unnest par la conversion à l'intérieur data.framedo.call puis sélectionnez les noms de colonnes comme ci-dessous

do.call(data.frame, df)[c('a', 'nested.a')] 
# a nested.a 
#1 1  10 
#2 2  20 
#3 3  30 
+1

Grand !. Merci – gpfymedia

+0

@gpfymedia Merci pour les commentaires. Vous pouvez également vérifier [ici] (https://stackoverflow.com/help/someone-answers) – akrun