For-Loop sa R ​​DataFrame

For Loop Sa R Dataframe



Ang for-loop ay isang control structure na nagbibigay-daan sa amin na ulitin ang isang set ng mga tagubilin sa isang tinukoy na bilang ng beses. Ito ay isang karaniwang ginagamit na paraan para sa pag-ulit sa R, lalo na kapag kailangan nating gawin ang parehong operasyon sa ilang elemento o umulit sa isang istraktura ng data tulad ng sa DataFrame. Binubuo ng mga row at column ang DataFrames sa R ​​kung saan ang bawat row ay kumakatawan sa isang obserbasyon at ang bawat column ay nagsasaad ng variable o aspeto ng obserbasyon na iyon.

Sa partikular na artikulong ito, gumagamit kami ng for-loop upang umulit sa DataFrame sa iba't ibang mga diskarte. Magkaroon ng kamalayan na ang for-loop na pag-ulit sa mga row at column ay maaaring maging lubos na computational para sa malalaking DataFrame.







Halimbawa 1: Paggamit ng For-Loop Over DataFrame Rows sa R

Ang for-loop sa R ​​ay maaaring gamitin upang umulit sa mga hilera ng isang DataFrame. Sa loob ng for-loop, magagamit natin ang row index para ma-access ang bawat row ng DataFrame. Isaalang-alang natin ang sumusunod na R code na kung saan ay ang pagpapakita ng for-loop upang umulit sa mga hilera ng tinukoy na DataFrame.



data = data.frame(c1 = c(1:5),

c2 = c(6:10),

c3 = c(11:15))

para sa(i sa 1:nrow(data)) {

hilera <- data[i, ]

print(row)

}

Dito, una naming tinukoy ang data.frame() function sa loob ng 'data'. Ang data.frame() function dito ay naglalaman ng tatlong column. Ang bawat column ay nakatakda na may pagkakasunod-sunod ng mga numero mula 1 hanggang 5, 6 hanggang 10, at 11 hanggang 15, ayon sa pagkakabanggit. Pagkatapos nito, ang for-loop function ay idine-deploy na umuulit sa mga row ng DataFrame 'data' gamit ang nrow() function upang makuha ang kabuuang bilang ng mga row. Ang loop variable, 'i', ay tumatagal ng mga halaga sa buong bilang ng mga row sa 'data'.



Pagkatapos, i-extract namin ang i-th row ng DataFrame 'data' gamit ang square brackets notation na '[ ]'. Ang na-extract na row ay naka-imbak sa isang 'row' variable na ipi-print ng print() function.





Samakatuwid, umuulit ang loop sa lahat ng mga row sa DataFrame at ipinapakita ang mga numero ng row sa output kasama ang mga value ng column.



Halimbawa 2: Paggamit ng For-Loop Over DataFrame Column

Katulad nito, maaari nating gamitin ang for-loop sa R ​​upang i-loop ang mga column ng tinukoy na dataframe. Magagamit natin ang nakaraang code para mag-loop sa mga column ngunit dapat nating gamitin ang ncol() function sa for-loop. Sa kabaligtaran, mayroon kaming pinakasimpleng diskarte sa pag-loop sa mga column ng DataFrame gamit ang for-loop. Isaalang-alang ang sumusunod na R code para dito:

df = data.frame(col1 = c(10, 20, 30, 40, 50),

col2 = c(11, 21, 31, 41, 51),

col3 = c(12, 22, 32, 42, 52))

for(col in colnames(df)) {

hanay <- df[[col]]

print(column)

}

Dito, gagawin muna namin ang df variable kung saan ginagamit ang data.frame() kasama ang mga column insertion. Ang 'df' DataFrame ay naglalaman ng tatlong column na naglalaman ng mga numeric na halaga. Susunod, gumagamit kami ng for-loop para umulit sa mga pangalan ng column ng DataFrame na 'data' gamit ang colnames() function. Sa bawat pag-ulit, ang loop variable na 'col' ay tumatagal sa pangalan ng kasalukuyang column. Ang na-extract na column ay iniimbak sa isang bagong variable na 'column'.

Kaya, ang data ng variable na 'column' ay nagpi-print ng output sa sumusunod na console:

Halimbawa 3: Paggamit ng For-Loop sa Buong DataFrame

Sa mga naunang halimbawa, nag-loop kami sa mga column at row gamit ang for-loop, ayon sa pagkakabanggit. Ngayon, ginagamit namin ang nested para sa mga loop upang umulit sa parehong mga row at column ng isang DataFrame, nang sabay-sabay. Ang code ng R ay ibinigay sa sumusunod kung saan ginagamit ang nested for-loop sa mga column at row:

mga empleyado <- data.frame(id=1:4,

names=c('kim', 'John', 'Ian', 'Mark'),

location=c('Australia', 'America', 'Canada', 'Jordan'),

suweldo=c(2000, 1800, 1500, 1000))

para sa (row sa 1:nrow(empleyado)) {

para kay (col sa 1:ncol(empleyado)) {

print(paste('Row index', row, 'colum name', col, 'cell value', mga empleyado[row, col]))

}

}

Dito, ipinapahayag namin ang variable na 'mga empleyado' kung saan tinatawag ang data.frame() upang itakda ang mga column. Ang mga halaga sa bawat column ay tinukoy gamit ang mga vector. Pagkatapos, para sa row at column ng 'empleyado' na DataFrame, gumagamit kami ng dalawang nested for-loop para umulit sa data. Ang panlabas na loop ay umuulit sa mga hilera ng tinukoy na DataFrame gamit ang '1:nrow(empleyado)'. Para sa bawat row, ginagamit ang '1:ncol(employees)' sa inner loop para paulit-ulit na umulit sa mga column ng DataFrame.

Pagkatapos nito, mayroon kaming print() function sa loob ng nested loops na nagde-deploy ng paste() function upang pagdugtungin ang row index, column index, at cell value sa isang string. Ang expression ng empleyado na [row, col] dito ay nakakakuha ng halaga sa kasalukuyang cell kung saan ang row at column ay ang umiiral na row at column na mga indeks, ayon sa pagkakabanggit.

Kaya, ang output sa console ay kinukuha gamit ang pinagsama-samang row index, column index, at cell value sa isang string.

Halimbawa 4: For-Loop Alternative Method sa R

Ang for loop ay luma na sa wikang R. Gayunpaman, nagbibigay ito ng ilang alternatibong pamamaraan na gumagana katulad ng for-loop at mas mabilis kaysa sa for-loops. Ang pamamaraan ay mula sa mga function na 'ilapat ang pamilya' na tumatakbo para sa loop sa background upang umulit sa DataFrames. Isaalang-alang natin ang sumusunod na R code kung saan ginagamit ang function na sapply() para i-loop ang DataFrame.

dfX <- data.frame(var1=c(1:5),

var2=c(6:10),

var3=c(11:15),

var4=c(16:20))

dfX

sapply(dfX, sum)

Dito, itinatatag muna namin ang 'dfX' DataFrame sa pamamagitan ng pagtawag sa data.frame() function na may dalawang column, bawat isa ay naglalaman ng mga numeric na halaga. Pagkatapos ay i-print namin ang orihinal na 'dfX' DataFrame sa console. Sa susunod na hakbang, ginagamit namin ang sapply() function para umulit sa ibinigay na DataFrame at makuha ang kabuuan ng bawat column. Ang sapply() function ay tumatagal ng 'x' at 'FUN' na mga argumento sa pangkalahatan. Sa kasong ito, ang X ay ang 'dfX' na DataFrame, at ang 'FUN' ay ang sum() function na inilalapat sa bawat isa sa mga column ng DataFrame.

Ang resulta ng pag-ulit na nakamit sa pamamagitan ng sapply() function ay nakamit sa sumusunod na screen. Ang mga resulta ng sum operation ng DataFrame ay ipinapakita para sa bawat column. Bukod dito, maaari rin kaming gumamit ng ilang iba pang mga function ng 'mag-apply ng pamilya' para sa para-loop na operasyon sa R:

Konklusyon

Nakikipagtulungan kami sa mga for-loop para umulit sa mga row o column ng DataFrame para magsagawa ng partikular na operasyon. Ang for-loop ay ginagamit nang paisa-isa upang umulit sa mga column at row. Higit pa rito, ginagamit namin ito para sa pag-ulit sa parehong mga column at row ng dataframe nang sabay. Kadalasan, ang paglalapat ng mga function upang makuha ang ninanais na resulta ay mas epektibo. Ang halimbawa ng pag-apply ng function ay ibinigay sa huling halimbawa sa para-loop na operasyon.