R语言处理数据的一个问题

w
wx2123
楼主 (未名空间)

如果我有一个sample dataframe如下

# sample dataframe
g <- c="" 0="" 7="" 7="" 9="" 2="" 4="" 5="" 1="" 6="" 4="">n1 <- c="" 3="" 4="" 1="" 7="" 3="" 2="" 7="" 8="" 4="" 3="">n2 <- c="" 5="" 9="" 6="" 8="" 5="" 6="" 0="" 9="" 5="" 7="">n3 <- c="" 7="" 2="" 1="" 4="" 8="" 0="" 9="" 3="" 8="" 4=""># ......
# ......
n100 <- c="" 8="" 6="" 8="" 2="" 4="" 8="" 7="" 4="" 8="" 6="">p1 <- c="" 2="" 1="" 6="" 8="" 3="" 9="" 1="" 9="" 2="" 1="">p2 <- c="" 1="" 3="" 9="" 9="" 7="" 9="" 7="" 9="" 3="" 7="">
sample <- data.frame="" g="" n1="" n2="" n2="" n100="" p1="" p2="">
现在需要根据p1,p2和n1,n2,…,n100计算一列q。例如,

q列的第1行=n2+n1=5+3=8。因为p1的第1行是2,p2的第1行是1.
q列的第2行=n1+n3=4+2=6。因为p1的第2行是4,p2的第2行是2.
……
以此类推。

请问,这个q列应该怎么算呢?

我用到了melt,但是似乎还没有结束。
library(reshape2)
melt.sample <- melt="" sample="" id="g">
W
Wtao

自定义一个函数,输入是一个长度为102的vector, 即只处理一行。
然后做一个matrix 然后apply一下。

你的问题描述里面好像有错

t
tankerw

不知melt功能。但知道你的核心问题是convert character string into variable
name.

【 在 wx2123 (bill) 的大作中提到: 】
: 如果我有一个sample dataframe如下
: # sample dataframe
: g <- c="" 0="" 7="" 7="" 9="" 2="" 4="" 5="" 1="" 6="" 4="">: n1 <- c="" 3="" 4="" 1="" 7="" 3="" 2="" 7="" 8="" 4="" 3="">: n2 <- c="" 5="" 9="" 6="" 8="" 5="" 6="" 0="" 9="" 5="" 7="">: n3 <- c="" 7="" 2="" 1="" 4="" 8="" 0="" 9="" 3="" 8="" 4="">: # ......
: # ......
: n100 <- c="" 8="" 6="" 8="" 2="" 4="" 8="" 7="" 4="" 8="" 6="">: p1 <- c="" 2="" 1="" 6="" 8="" 3="" 9="" 1="" 9="" 2="" 1="">: ...................

a
affineV

X=cbind(n1,...,n100)
q=c()
for(i in 1:dim(X)[1]) q=c(q,X[i,p1[i]]+X[i,p2[i]])