Skip to content

Lemon drops

7 messages · Marc Schwartz, Peter Dalgaard, Achim Zeileis +1 more

#
I bumped into the following situation:

Browse[1]> coef
            deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP
(Intercept)    462    510    528    492    660    762
Browse[1]> coef[,1]
[1] 462
Browse[1]> coef[,1,drop=F]
            deg0NA
(Intercept)    462

where I really wanted neither, but

(Intercept)
        462

Anyone happen to know a neat way out of the conundrum?

I can think of

rowSums(coef[,1,drop=F])

or of course

val <- coef[,1]
names(val) <- rownames(x))

but the first one is sneaky and the second gets a bit tedious...
#
On Tue, 2005-03-15 at 18:05 +0100, Peter Dalgaard wrote:
Peter,

How about something like this:
deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP
(Intercept)    462    510    528    492    660    762
IV1              1      2      3      4      5      6
(Intercept)
        462
Named num 462
 - attr(*, "names")= chr "(Intercept)"


Does that work or am I missing something?

Marc Schwartz
#
Marc Schwartz <MSchwartz@MedAnalytics.com> writes:
You're missing the context. What I really need is something that will
extract a column of a matrix as a vector in the usual way, but will
not get confused if there is only one row.
#
On Tue, 2005-03-15 at 18:26 +0100, Peter Dalgaard wrote:
OK.  <scratching head.....>

Well, thinking that there was an approach using t(), it works, but
retains a 2 dim structure which is not what you want. It also retains
the colname from the original structure as the rowname for the new
construct.

I don't have another idea at this point for you, but I'll keep
thinking... :-)

Marc
#
On 15 Mar 2005 18:26:46 +0100 Peter Dalgaard wrote:

            
Maybe:
  coef[,1,drop=FALSE][1:nrow(coef)]
?
Z
#
On Tue, 2005-03-15 at 20:05 +0100, Achim Zeileis wrote:
Hmmmm....interesting.

At the risk of this degenerating into an obfuscated R contest, Achim's
post just gave me an idea to build on my original thought:


# With one row:
deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP
(Intercept)    462    510    528    492    660    762
(Intercept)
        462



# Now with two rows:
deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP
(Intercept)    462    510    528    492    660    762
IV1              1      2      3      4      5      6
(Intercept)         IV1
        462           1


Marc
#
Peter Dalgaard <p.dalgaard <at> biostat.ku.dk> writes:

: 
: I bumped into the following situation:
: 
: Browse[1]> coef
:             deg0NA deg4NA deg8NA deg0NP deg4NP deg8NP
: (Intercept)    462    510    528    492    660    762
: Browse[1]> coef[,1]
: [1] 462
: Browse[1]> coef[,1,drop=F]
:             deg0NA
: (Intercept)    462
: 
: where I really wanted neither, but
: 
: (Intercept)
:         462
: 
: Anyone happen to know a neat way out of the conundrum?
: 
: I can think of
: 
: rowSums(coef[,1,drop=F])
: 
: or of course
: 
: val <- coef[,1]
: names(val) <- rownames(x))
: 
: but the first one is sneaky and the second gets a bit tedious...
: 


If by tedious you mean its not a single expression
then the basic idea of your solution #2 can be preserved
while doing it in a single expression like this:

structure(coef[,1], .Names = rownames(x))