Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R名单及;数据帧格式_R_List_Dataframe - Fatal编程技术网

R名单及;数据帧格式

R名单及;数据帧格式,r,list,dataframe,R,List,Dataframe,所以我有一个列表作为.rda文件。列表中有51个元素,对应于州缩写,即“ca”、“fl”等。每个州都有一个state.in和state.out元素。例如,有一长串迁移数据可以作为data\u 9495$ca$state.in和另一个名为data\u 9495$ca$state.out访问。为了使这个巨大的数据文件与其他内容保持一致,我需要更改数据文件中每个状态的state.In和state.out元素中的一些值。数据文件名为data\u 9495,我需要实际更改列表中的元素,以便重新保存数据文件

所以我有一个列表作为.rda文件。列表中有51个元素,对应于州缩写,即“ca”、“fl”等。每个州都有一个state.in和state.out元素。例如,有一长串迁移数据可以作为
data\u 9495$ca$state.in
和另一个名为
data\u 9495$ca$state.out
访问。为了使这个巨大的数据文件与其他内容保持一致,我需要更改数据文件中每个状态的state.In和state.out元素中的一些值。数据文件名为
data\u 9495
,我需要实际更改列表中的元素,以便重新保存数据文件并稍后使用。到目前为止,我得到的是:

datafile<-"data_9495"
datafile<-gsub("\\.rda$","",datafile)
loaded_data <- load(paste("/Users/blah/blah/Listed     Data/", datafile, ".rda", sep=""))
d<-get(loaded_data[1])
require("UScensus2010")
data(countyfips)
states<-unique(countyfips[,4])
for(k in 1:length(states)){
    state<-states[k]
    print(k)
state.in<-as.data.frame(d[[which(names(d)==tolower(state))]][1])
state.out<-as.data.frame(d[[which(names(d)==tolower(state))]][2])


{for(j in 1:dim(state.in)[1])
{
    if(state.in[j,3]=="63"&&state.in[j,4]=="050")
        {state.in[j,3]<-state.in[j,1]
        state.in[j,4]<-state.in[j,2]}

}
for(i in 1:dim(state.out)[1])
{
    if(state.out[i,3]=="63"&& state.out[i,4]=="050")
        {state.out[i,3]<-state.out[i,1]
        state.out[i,4]<-state.out[i,2]}
}
assign(d[[which(names(d)==tolower(state))]][1],state.in)
assign(d[[which(names(d)==tolower(state))]][2],state.out)
}}

datafile嗯,
assign
不是必需的,而且语法错误(第二个参数应该是字符向量)

请尝试改用此语法

for(k in 1:length(states)){
    state<-states[k]
    print(k)
    state.in <- d[[which(names(d)==tolower(state))]][["state.in"]]
    state.out <- d[[which(names(d)==tolower(state))]][["state.out"]]

    ...

    d[[which(names(d)==tolower(state))]][["state.in"]] <- state.in
    d[[which(names(d)==tolower(state))]][["state.out"]] <- state.out
}}
for(k/1:长度(状态)){

state您能否给出一个非常具体的示例,说明在加载数据时存在一个值,您认为该值应该更改,并且在再次保存数据之前,您认为该值应该更改为什么值?它应该遍历行。如果第3列为“63”,同一行的第4列为“050”,则第3列应更改为第1列中的数字(技术上为字符)(类似于“04”),第4列应更改为第2列中的数字(技术上为字符),类似于“035”)。请注意,这都在同一行中。那么您希望更改数据中的哪一行/状态?您希望在哪里看到它不起作用?我需要更改第3列和第4列(有条件地)每个州的state.in和state.out。运行上面的代码后,我只打印了.rda文件,即data9495$ca$state.in,它似乎没有更改。我打印了state.in和state.out,它似乎在那里更改了,但在原始数据文件中没有。我想这意味着我必须以某种方式将它分配回data9495$ca$state.in495对象,但我不确定如何执行。我尝试使用assign()函数分配它,但无法使其工作。