Code:
frame:SetWidth(floor((frame:GetParent():GetWidth() / 2) + 0.5))
Or, you can position the frame so that it is resized automatically.
http://wowpedia.org/API_Region_SetPoint
For example:
Code:
local parent = frame:GetParent()
frame:SetPoint("TOPLEFT", parent)
frame:SetPoint("BOTTOMRIGHT", parent, "BOTTOM")
Now your frame fills up the left half of your parent's frame and resizes accordingly, because its top left corner is attached to the parent's top left corner, and the bottom right corner is attached to the bottom (centre) of the parent.
Of course, you don't need the GetParent() calls in these examples if you're creating the frame yourself.