将键值附加到R中数据框的列表中

时间:2014-08-26 03:49:30

标签: r list dataframe

我有一个导入R的数据框,如下所示:

location<-

          cns  random
char1      1      2
not_char1  3      2
char2      7      10
not_char2  5       2

我想在2X2列联表中拆分此数据框,计算Fisher测试并将其作为列表返回:

result=(char1=fisher.test.p.value.char1, char2=fisher.test.p.value.char2)
我写了这样的代码:

location_list=list()
for (item in seq(1,length(rownames(location)),2)){
  df<-location[item:(item+1),]
  result<-fisher.test(df)
  location_list<-c(location_list, rownames(df[1,])=result$p.value}

但它会出现以下错误:

Error in source(".../sd_based/r_data_analysis.R") : 
.../sd_based/r_data_analysis.R:11:52: unexpected '='
10:     result<-fisher.test(df)
11:     location_list<-c(location_list,rownames(df[1,])=

R列表看起来像Python语言字典,这个策略适用于Python,但不适用于此。我很感激,如果有人可以提供帮助的话。

1 个答案:

答案 0 :(得分:2)

使用by split data.frame fisher.test,应用sapply,然后使用"["提取"p.value",可能会对此产生一些变化您的sapply(by(location,sub("not_","",rownames(location)), fisher.test),"[","p.value") #$char1.p.value #[1] 1 # #$char2.p.value #[1] 0.3707094 值:

{{1}}