1
Rのコースで働いていますが、私は解決できないようなコースで問題を見つけました。Rサブセットとデータフレーム内のタグデータ
私はdelivery_data
と読み込まれたcsvファイルを持っています。pickup_zipcode
が94107のすべての行を見つけて、 "Whole Foods Market"、 "Safeway"、または "またはpickup_name
フィールドに「Pizzeria Delfina」と入力します。次に、pickup_name
をホットスポットとしてタグ付けします。
は、ここで私が試したコードです:
delivery_data = read.csv('Delivery_Data_Problem.csv')
#created vector to hold the text values I'm looking for
hotspot_locations = c("Whole Foods Market", "Safeway", "Pizzeria Delfina")
pickup_sub = list() #init as list
#running through the original data frame to get a list of the hotspots that need tagging
for(i in hotspot_locations){
pickup_sub[[i]] = delivery_data[delivery_data$pickup_name == i, ]
}
#applies tags to the list pickup_sup
sapply(pickup_sub, function(x){
if(x$pickup_name == "Whole Foods Market"){
x$pickup_name = paste(x$pickup_name, '-H1')
}else if(x$pickup_name == "Safeway"){
x$pickup_name = paste(x$pickup_name, '-H2')
}else if(x$pickup_name == "Pizzeria Delfina"){
x$pickup_name = paste(x$pickup_name, '-H3')
}
})
#this code works, but isn't exactly what we want with this, we need to tag the original data frame
#this is the first attempt to get just the indexes, but it's not returning just the indexes. should I use which() here?
full_list = delivery_data[(delivery_data$pickup_name == "Whole Foods Market" | delivery_data$pickup_name == 'Safeway' | delivery_data$pickup_name == "Pizzeria Delfina") & delivery_data$pickup_zipcode == 94107,]
# hs_zip is supposed to be a vector of indexes to help an apply function to tag the original data frame.
hs_zip = delivery_data[which(delivery_data$pickup_zipcode == 94107),]
# then iterate over the rows and attempt to tag.
for(i in delivery_data[hs_zip,]){
if(i$pickup_name == "Whole Foods Market"){
i$pickup_name = paste(i$pickup_name, '-H1')
}else if(i$pickup_name == "Safeway"){
i$pickup_name = paste(i$pickup_name, '-H2')
}else if(i$pickup_name == "Pizzeria Delfina"){
i$pickup_name = paste(i$pickup_name, '-H3')
}
}
最終ループは、次のエラーが発生します。コピーではなく元のデータフレームにどのようにタグを付けることができますか? XJで
エラー[i]は:無効な添字タイプ 'リスト'