我在R中有如下列表:
data1<-list("A" = 1, "B" = 2, "C" = 3,"D" = 4)
当我打印data1时,我有:
$A
[1] 1
$B
[1] 2
$C
[1] 3
$D
[1] 4
我有一个带有值的csv文件:
alt1,alt2,alt3,alt4
appear,certain,dance,example
apply,danger,chance,excellent
其中alt1,alt2,...是csv.file
的标题我想从我的csv文件中提取第二行,以便我可以获得类似data1的内容,我已经完成了以下操作:
getData=read.csv("test.csv",header=TRUE)
q<-getData[2,]
print(q)
anylist<-list()
anylist[[q[1]]]<-1
anylist[[q[2]]]<-2
anylist[[q[3]]]<-3
anylist[[q[4]]]<-4
print(anylist)
因为我需要anylist具有与data1相同的结构,我的意思是如果我必须直接写它将是:
anylist<-list("apply" = 1, "danger" = 2, "chance" = 3,"excellent" = 4)
所以当我打印任何我要打印的列表时:
$apply
[1] 1
$danger
[1] 2
$chance
[1] 3
$excellent
[1] 4
但我得到了错误:
Error in anylist[[q[1]]] <- 1 : invalid subscript type 'list'
答案 0 :(得分:0)
以下快速功能将获取一行数据,确定顺序,并关联订单和名称,输出列表。我相信这就是你想要的,对吧?如果您想对许多行执行此操作,只需使用带有apply
的{{1}}语句,您将获得列表列表。这是你在找什么?
MARGIN=1
......这是一个快速验证。
getNames=function(row){
retList=as.list(order(row))
names(retList) = as.character(sort(row))
return(retList)
}
答案 1 :(得分:0)
疑难杂症!
getData=read.csv("test.csv",header=TRUE,stringsAsFactors=FALSE)
q<-getData[2,]
n<-as.list(c(1:4))
names(n)<-q