With an example - Re: rbind.data.frame drops attributes for factor variables
dataset[ nrow(dataset), ] <- c ("Male", 5, "bad")
The above seems to have worked to append a row in place of a rbind().
This
No. It overwrites your last row. You maybe meant
dataset[ nrow(dataset)+1, ] <- c ("Male", 5, "bad")
Regards
Petr
method does not drop the custom attributes from the column. Do yo see
any
issue with this method. Thanks, Sammy On Sat, Nov 12, 2011 at 10:16 PM, David Winsemius
<dwinsemius at comcast.net>wrote:
On Nov 12, 2011, at 6:40 PM, Sammy Zee wrote: Thanks David. Besides rbind(), is there any other way to add a row to
a
data frame so that I do not lose the custom attributes.
I have already told you the method that I know of. You don't seem to
have
taken my poin that it is not a data.frame specific problem but rahter
a
facor problem. You are welcome to redefine `rbind.data.frame`. The R language is rather flexible in that manner. -- David.
Thanks, Sammy On Sat, Nov 12, 2011 at 5:17 PM, David Winsemius
<dwinsemius at comcast.net>
wrote: On Nov 12, 2011, at 2:47 PM, Sammy Zee wrote: When I use rbind() or rbind.data.frame() to add a row to an existing dataframe, it appears that attributes for the column of type "factor"
are
dropped. See the sample example below to reproduce the problem.
Please
suggest How I can fix this.
Thanks,
Sammy
a=c("Male", "Male", "Female", "Male")
b=c(1,2,3,4)
c=c("great", "bad", "good", "bad")
dataset<- data.frame (gender = a, count = b, answer = c)
dataset
gender count answer
1 Male 1 great
2 Male 2 bad
3 Female 3 good
4 Male 4 bad
attributes(dataset$answer)
$levels
[1] "bad" "good" "great"
$class
[1] "factor"
Now adding some custom attributes to column dataset$answer
attributes(dataset$answer)<-c(**attributes(dataset$answer),**
list(newattr1="custom-attr1"))
attributes(dataset$answer)<-c(**attributes(dataset$answer),**
list(newattr2="custom-attr2"))
If you look through the code of rbind.data.frame you see that column
values are processed with the 'factor' function.
attributes(dataset$answer)
$levels [1] "bad" "good" "great" $class [1] "factor" $newattr1 [1] "custom-attr1" $newattr2 [1] "custom-attr2"
attributes(factor(dataset$**answer))
$levels
[1] "bad" "good" "great"
$class
[1] "factor"
So I think you are out of luck. You will need to restore the "special
attributes" yourself.
--
David.
attributes(dataset$answer)
$levels
[1] "bad" "good" "great"
$class
[1] "factor"
$newattr1
[1] "custom-attr1"
$newattr2
[1] "custom-attr2"
However as soon as I add a row to this data frame ("dataset") by
rbind(),
it loses the custom
attributes ("newattr1" and "newattr2") I have just added
newrow = c(gender="Female", count = 5, answer = "great")
dataset <- rbind(dataset, newrow)
attributes(dataset$answer)
$levels
[1] "bad" "good" "great"
$class
[1] "factor"
the two custom attributes are dropped!! Any suggestion why this is
happening.
On Fri, Nov 11, 2011 at 11:44 AM, Jeff Newmiller
<jdnewmil at dcn.davis.ca.us>**wrote:
As the doctor says, if it hurts "don't do that".
A factor is a sequence of integers with a corresponding list of
character
strings. Factors in two separate vectors can and usually do map the
same
integer to different strings, and R cannot tell how you want that resolved. Convert these columns to character before combining them, and only
convert
to factor when you have all of your possibilities present (or you
specify
them in the creation of the factor vector). ------------------------------**------------------------------** --------------- Jeff Newmiller The ..... ..... Go Live... Sammy Zee <szee2007 at gmail.com> wrote: Hi all, When I use rbind() or rbind.data.frame() to add a row to an existing dataframe, it appears that attributes for the column of type "factor" are dropped. I see the following post with same problem. However i did
not
see any reply to the following posting offering a solution. Could someone please help. http://r.789695.n4.nabble.com/**rbind-data-frame-drops-** attributes-for-factor-**variables-td919575.html<http://r.
789695.n4.nabble.com/rbind-data-frame-drops-attributes-for-factor- variables-td919575.html>
Thanks, Sammy [[alternative HTML version deleted]] ___
David Winsemius, MD West Hartford, CT
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.