やる is a 'downward' version of あげる: the giver is above the receiver. It is used for giving water to plants, food to animals, and things to one's own children or younger brothers and sisters; 〜てやる is the same for actions. Today many people use あげる in these cases too, because やる can sound rough. やる is not normally used for friends, strangers or superiors: to a friend it sounds rough, and to a superior it is rude.
§1Structure
Giving a thing: [giver] は [receiver] に [thing] を やる (polite: やります). Doing an action: verb て-form + やる (読んでやる, 直してやります). The receiver is someone clearly below the giver in the family (one's own child, younger brother or sister), an animal or a plant. As with 〜てあげる, the particle for the receiver follows the main verb: 娘に本を読んでやる, 犬を散歩に連れていってやる, 息子の自転車を直してやる.
§2Examples
毎朝、花に水をやります。
まいあさ、はなにみずをやります。
I water the flowers every morning.
もう犬にえさをやりましたか。
もういぬにえさをやりましたか。
Have you already fed the dog?
弟に古い自転車をやった。
おとうとにふるいじてんしゃをやった。
I gave my old bicycle to my younger brother.
息子の自転車を直してやりました。
むすこのじてんしゃをなおしてやりました。
I fixed my son's bicycle for him.
毎晩、娘に本を読んでやります。
まいばん、むすめにほんをよんでやります。
Every night I read a book to my daughter.
犬を散歩に連れていってやりました。
いぬをさんぽにつれていってやりました。
I took the dog for a walk.
池の魚にパンをやらないでください。
いけのさかなにパンをやらないでください。
Please don't give bread to the fish in the pond.
弟が泣いていたので、おもちゃを貸してやった。
おとうとがないていたので、おもちゃをかしてやった。
My younger brother was crying, so I lent him a toy.
§3Common mistakes
- Using やる or 〜てやる for a friend, a stranger or a superior: ✗ 先生に花をやりました, ✗ 友だちに傘を貸してやりました (said in a normal, friendly situation). やる puts the receiver below you, so it is rude here. Use さしあげる for a superior and あげる for a friend: ○ 先生に花をさしあげました, ○ 友だちに傘を貸してあげました.
- Using 〜てやる when the favor comes to me: ✗ 兄が私に泳ぎ方を教えてやりました. Like あげる, やる is never used when the receiver is 'I'. Use 〜てくれる: ○ 兄が私に泳ぎ方を教えてくれました.
- Thinking that あげる is a mistake for animals and plants. Textbooks teach 花に水をやる and 犬にえさをやる, and the JLPT expects you to know them, but in everyday life many speakers say 花に水をあげる and 犬にえさをあげる. Both are accepted; you do not have to correct a person who uses あげる.
§4How it's different from similar grammar
- 〜てあげる (do something for someone)
- Both mean that the subject does something for another person, never for 'me'. 〜てあげる is the neutral choice for friends and people equal to you: 友だちに写真を見せてあげました (I showed my friend the photos). 〜てやる is kept for one's own children, younger brothers and sisters, and animals: 子どもに写真を見せてやりました (I showed my child the photos). When you are not sure, 〜てあげる is the safe choice.
- やる meaning 'do' (casual する)
- やる has another common meaning: a casual word for する, 'to do'. 宿題をやる (do homework), サッカーをやる (play soccer). You can tell the two apart from the sentence pattern: 'give' has a receiver with に (犬に水をやる), and 'do' has only an object (宿題をやる). 〜てやる with a て-form in front is the 'do for someone' use, not 'do'.
§5How this shows up on the JLPT
At N4, やる appears mainly in the set phrases 花に水をやる and 犬/猫にえさをやる, often in a question where you choose among やります, くれます and もらいます. Check the receiver: a plant, an animal or one's own small child → やる is possible; a teacher or a customer → さしあげる. In reading passages, 〜てやる tells you that the subject is older or higher than the receiver, for example a parent talking about a child.
§6Quick check (3 questions)
1. Choose the word that fits the blank: 私は毎日、庭の木に水を__。
わたしはまいにち、にわのきにみずを__。
2. In which sentence is やる used appropriately?
3. 「父は弟に新しいくつを買ってやりました。」 Who got the new shoes?
ちちはおとうとにあたらしいくつをかってやりました。