如何将字符串和数字添加到csv文件的列表中?

时间:2015-03-30 00:46:18

标签: r csv

我在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'

2 个答案:

答案 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