私は配列にインポートした.csv
ファイルを持っています。それらはすべてコンマで区切られているので、私は先に進んで、素敵な配列を作った。一致するIDに基づいて配列内の重複を削除します。 Rails
私はIDが一致するレコードを検索しようとしていますので、重複を削除して最後に遭遇したものだけを保持することができます。たとえばID
を使用します。
私は配列にインポートしましたが、何らかの理由でユニークのようなツールを取得できないため、新しいユニークなリストを表示することができません.lengthを指定しても適切な行が返されます。
ご協力いただければ幸いです。
CODE
lines = []
i = 0
file = File.open("./properties.csv", "r")
elements = Array[]
element2 = Array[]
output = Array[]
while (line = file.gets)
i += 1
# use split to break array up using commas
arr = line.split(',')
elements.push({ id: arr[0], streetAddress: arr[1], town: arr[2], valuationDate: arr[3], value: arr[4] })
end
file.close
# Loop through array and sort nicely
element2 = elements.group_by { |c| c[:id] }.values.select { |elements| elements.size > 1 }
output = (element2.uniq)
puts output
puts element2.length
SAMPLE .csvファイル
ID,Street address,Town,Valuation date,Value
1,1 Northburn RD,WANAKA,1/1/2015,280000
2,1 Mount Ida PL,WANAKA,1/1/2015,280000
3,1 Mount Linton AVE,WANAKA,1/1/2015,780000
1,1 Northburn RD,WANAKA,1/1/2015,330000
2,1 Mount Ida PL,WANAKA,1/1/2015,330000
3,1 Mount Linton AVE,WANAKA,1/1/2015,830000
1,1 Northburn RD,WANAKA,1/1/2016,340000
2,1 Mount Ida PL,WANAKA,1/1/2016,340000
3,1 Mount Linton AVE,WANAKA,1/1/2016,840000
4,1 Kamahi ST,WANAKA,1/1/2016,215000
5,1 Kapuka LANE,WANAKA,1/1/2016,209000
6,1 Mohua MEWS,WANAKA,1/1/2016,620000
7,1 Kakapo CT,WANAKA,1/1/2016,490000
8,1 Mt Gold PL,WANAKA,1/1/2016,1320000
9,1 Penrith Park DR,WANAKA,1/1/2016,1310000
おそらく 'Array [] 'の代わりに' [] 'を意味します。 – tadman
それは本当です!しかし、もし私が間違っているならば、ここで私を修正してください。違いがないという違いはありませんか? –
違いは 'Array []'を使用しているのは単なる奇妙なことです。最も単純な表現を使用するのが一般的に最適です。 – tadman