0

醜いコードで申し訳ありませんが、何が問題なのか正確にはわかりません

for (i in 1:1) 
    tab_sector[1:48,i] <- 
        tapply(get(paste("employee",1997-1+i, "[birth<=(1997-1+i)]",sep="")),
               ordered(sic2digit[birth<=(1997-1+i)],levels=tab_sector_list))

# Error in get(paste("employee", 1997 - 1 + i, 
# "[birth<=(1997-1+i))]",  : object 'employee97[birth<=(1997-1+i)]' not found

しかし、変数はそこにあります:

head(employee97[birth<=(1997-1+i)])
# [1] 1 2 2 1 3 4

「従業員」が「出生」によって条件付けられていない、より単純なバージョンの作品

4

2 に答える 2

2

getインデックス付きの要素はできません。たとえば、get("x[i]")失敗します。必要get("x")[i]です。

あなたのコードはほとんど乱雑で何が起こっているのかわかりませんが、これは翻訳の試みです:

   for (i in 1:1){
        ind <- 1997-1+i
        v1 <- get(paste0("employee",ind))
        tab_sector[1:48,i] <- tapply(v1[birth<=ind],
             ordered(sic2digit[birth<=ind],levels=tab_sector_list))
    }
于 2012-11-22T17:22:36.897 に答える
2

何を達成しようとしているのかを教えていただけると助かります。

あなたのコードでは、get関数は名前が「'employee97[birth<=(1997-1+i)]」である変数を探しています。機能するコードは、名前が「employee1997」である変数を見つけてからサブセット化しています。とても違う。関数はgetサブセット化を行いません。

あなたがやろうとしていることの一部は FAQ 7.21 です。その最も重要な部分は、アクセスを容易にするためにデータをリストに保存することを提案する最後です。

于 2012-11-22T17:23:50.983 に答える