On 31 Mar 2015, at 20:55 , William Dunlap wdun...@tibco.com wrote:
You can use structure() to attach the names to a list that is input to
data.frame.
E.g.,
dfNames - c(First, Second Name)
data.frame(lapply(structure(dfNames, names=dfNames),
function(name)rep(NA_real_, 5)))
Yes, I
but wouldn't it be more to the point to do
df - as.data.frame(rep(list(rep(NA_real_, 10)),3))
names(df) - names
As a matter of personal style (and functional programming
sensibility), I prefer not to make named objects and then modify them.
Also, the names coming out of that as.data.frame
On Tue, Mar 31, 2015 at 6:42 PM, Sarah Goslee sarah.gos...@gmail.com wrote:
On Tue, Mar 31, 2015 at 6:35 PM, Richard M. Heiberger r...@temple.edu wrote:
I got rid of the extra column.
data.frame(r=seq(8), foo=NA, bar=NA, row.names=r)
Brilliant!
After much fussing, including a disturbing
On 03 Apr 2015, at 16:46 , William Dunlap wdun...@tibco.com wrote:
df - as.data.frame(rep(list(rep(NA_real_, 10)),3))
names(df) - names
As a matter of personal style (and functional programming
sensibility), I prefer not to make named objects and then modify them.
Also, the names
You can make it as elegant as you want, e.g.,
make.empty.df - function(nrow,ncol, names) {
if(length(names) %% ncol != 0) stop(Lenght of names is not a
multiple of the number of colums)
data.frame(matrix(NA, nrow, ncol, dimnames = list(NULL, names)))
}
Best,
Ista
On Tue, Mar 31, 2015
You can use structure() to attach the names to a list that is input to
data.frame.
E.g.,
dfNames - c(First, Second Name)
data.frame(lapply(structure(dfNames, names=dfNames),
function(name)rep(NA_real_, 5)))
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Tue, Mar 31, 2015 at 11:37 AM, Sarah
Hi,
Duncan Murdoch suggested:
The matrix() function has a dimnames argument, so you could do this:
names - c(strat, id, pid)
data.frame(matrix(NA, nrow=10, ncol=3, dimnames=list(NULL, names)))
That's a definite improvement, thanks. But no way to skip matrix()? It
just seems unRlike,
I just snagged this from Duncan Murdoch's reply to the same question:
# Create an empty dataframe to hold the results
df - data.frame(strat=NA, id=NA, pid=NA)[rep(1, length(sel)),]
This skips matrix(), but how to set the column names programmatically
within a function?
Sarah, still sure I'm
Hi folks,
I KNOW there has to be a way to do this more elegantly, but I
consistently fail to come up with it, as I was just reminded while
writing an example for a query on this list.
What's a nifty way to construct a data frame of a given size? The only
way I know of it to use matrix(), eg
On 31/03/2015 1:52 PM, Sarah Goslee wrote:
I just snagged this from Duncan Murdoch's reply to the same question:
# Create an empty dataframe to hold the results
df - data.frame(strat=NA, id=NA, pid=NA)[rep(1, length(sel)),]
This skips matrix(), but how to set the column names programmatically
On Tue, Mar 31, 2015 at 6:35 PM, Richard M. Heiberger r...@temple.edu wrote:
I got rid of the extra column.
data.frame(r=seq(8), foo=NA, bar=NA, row.names=r)
Brilliant!
After much fussing, including a disturbing detour into nested lapply
statements from which I barely emerged with my sanity
If you don't mind an extra column, you could use something similar to:
data.frame(r=seq(8),foo=NA,bar=NA)
If you do, here is another approach (see function body):
empty.frame - function (r = 1, n = 1, fill = NA_real_) {
data.frame(setNames(lapply(rep(fill, length(n)), rep, times=r), n))
}
I got rid of the extra column.
data.frame(r=seq(8), foo=NA, bar=NA, row.names=r)
Rich
On Tue, Mar 31, 2015 at 6:18 PM, Sven E. Templer sven.temp...@gmail.com wrote:
If you don't mind an extra column, you could use something similar to:
data.frame(r=seq(8),foo=NA,bar=NA)
If you do, here is
I've got dataFrame() in R.utils for this purpose, e.g.
df - dataFrame(colClasses=c(a=integer, b=double, c=character),
nrow=10L)
str(df)
'data.frame': 10 obs. of 3 variables:
$ a: int 0 0 0 0 0 0 0 0 0 0
$ b: num 0 0 0 0 0 0 0 0 0 0
$ c: chr ...
Related: You can use the
14 matches
Mail list logo