Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
270 views
in Technique[技术] by (71.8m points)

r - Basic Loop through a matrix with pasting column names into result objects

I have a dataframe (samples x species) which I want to loop this command through (column-wise):

dist <- vegdist(decostand(X,"standardize",MARGIN=2), method="euclidean")

I need the name of the column in each of the new dist-values. So if my columns are called A, B, C, then the result should be dist-values called Dist.A, Dist.B, Dist.C, and so on. I believe this can be done with paste, but I have no clue how.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can try (if it is a data.frame)

 d1[] <- lapply(colnames(d1), function(x) paste(d1[,x], x, sep="."))

Or

 d1[] <- Map(function(x,y) paste(x, y, sep="."), d1, colnames(d1))

If it is a matrix

  m1[] <- paste(m1, colnames(m1)[col(m1)],sep=".")

data

 m1 <- matrix(1:15, ncol=3, dimnames=list(NULL, LETTERS[1:3]))
 d1 <- as.data.frame(m1)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...