Google検索でうまくいく答えが見つかりませんでした。 私のデータフレームにデータが入力されていない理由がわかりません。これはシンプルなようですが、うまくいきません。誰も助けることができますか?ループ内のデータフレームにRが入力されない場合
x<- 50:1
y<- -44:5
theDF <- data.frame(x,y)
# add new column
theDF["GName"] <- 'NA'
divToG <- function (a)
{
counter = 1
g_number = 1
# loop to populate new column
for (i in 1:nrow(theDF))
{
theDF$GName[i] = paste("GName", toString(g_number)) # NOT WORKING!
g_number = g_number + 1
}
}
#call the function
divToG (theDF)
theDF$GName[i]
が入力されないのはなぜですか?ループが成功した場合、列はNA
の代わりにGName 1
,GName 2
、Gname 3
などでなければなりませんが、NA
から変更することはできません。
私はあなたを考えます "実際に 'the $ $ GName < - paste( 'GName'、1:nrow(theDF))'を実行しようとしています。ベクトル化された演算は、Rのループよりも好ましいです。 – alistaire
ベクトル化する方法は?グループ1にアイテム1〜10を入れる必要があった場合、グループ2のアイテム11〜21を入れる必要があったのですか? –
'paste( 'GName'、rep(1:5、each = 10))'のような意味ですか?シーケンス内にあるものに文字列を貼り付けるだけです。あなたは、あなたが望むようにシーケンスを見えるようにする必要があります。 – alistaire