由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - R语言处理数据的一个问题
进入Statistics版参与讨论
1 (共1页)
w****3
发帖数: 1
1
如果我有一个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**o
发帖数: 547
2
自定义一个函数,输入是一个长度为102的vector, 即只处理一行。
然后做一个matrix 然后apply一下。
你的问题描述里面好像有错
t*****w
发帖数: 254
3
不知melt功能。但知道你的核心问题是convert character string into variable
name.

【在 w****3 的大作中提到】
: 如果我有一个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*****V
发帖数: 1
4
X=cbind(n1,...,n100)
q=c()
for(i in 1:dim(X)[1]) q=c(q,X[i,p1[i]]+X[i,p2[i]])
1 (共1页)
进入Statistics版参与讨论