1

2 つの列を含む data.frame に情報があります。

name  age
a     10
b     20
c     30

名前のリストがありますc b d。ここで、リストの順序で元のデータ フレームの属性の data.frame (またはリストなど) を取得したいと考えています。上記の例の場合、それは

name  age
c     30
b     20
d     NA

これはそれほど難しくないはずだと思いますが(インラインであっても)、Rでそれを行う方法が見つかりません.

バックグラウンド:

エッジ リストから作成された「ネットワーク」オブジェクトがあります。別の頂点属性がありますが、これらのそれぞれが最初にどのように順序付けられるかについては力がありません。ここで、ネットワーク頂点にこれらの属性を割り当てたいと思います。

でも使うためには

  • network %v% "age" <- dataframe[,2]データフレームを正しい順序にする必要があります

そして

  • set.vertex.attribute(network, "age", hhs$age, v = hhs$di)頂点IDが必要です
4

2 に答える 2

4

名前のリストを取得し、同じ名前lsで作成しました。data.framename

私はそれから使用left_joinしましたdplyr

ls<-c("c","b","d")
df2<-data.frame(name=ls)

df2 %>% left_join(df,by="name")->new_df

> new_df
  name age
1    c  30
2    b  20
3    d  NA

または、dplyr/magrittr のパイピングに慣れていない場合は、次のように書き直すことができます。

new_df<-left_join(df2,df,by="name")

同じ結果が得られるため:

> new_df
  name age
1    c  30
2    b  20
3    d  NA

実際、df2has しかないので、引数nameを指定する必要さえありません。by=

new_df<-left_join(df2,df)

同じ結果が得られます。

于 2015-04-02T12:40:32.297 に答える