As.vector不会将data.frame子集转换为向量

下面我提供了一些我一直在研究的代码片段。 我已经成功地以字符串形式读取表格。 有一些我希望使用median()函数的表的子集。 根据我所做的研究和我自己的经验,median()没有为data.frame定义行为,也没有data.frame的子集。 所以,为了让我的问题适合某些定义的行为,我试图将我想要的子集投射到一个向量中。 但是,即使在使用as.vector投射我想要的子集之后,我仍然有一个data.frame。 当我尝试对此调用中位数时,我得到“参数不是数字或逻辑:返回NA”。

我自己玩了很多,试图在这里和其他地方找到信息。 作为一个说明,我已经尝试了在这个线程R友好的方式accpeted解决方案中列出的方法来将R data.frame列转换为向量? 并取得了与现在相同的结果。 我不太在意我是如何完成这件事的; 随意提出其他方法。

感谢您的时间。

for(i in 1:length(text_array)){
    temp= read.table(textConnection(text_array[i]), sep="t",row.names=NULL, header= FALSE,  fill=TRUE) 
    value=""
    #we are now going to process temp and add it
    cur_DS=coll_data_sets[i]
    #median is the value that we are going to insert into the result array.
    #currently the logic behind it is not implemented.
    #the value will be the median of state1 divided by the median of state2.
    t_states=vector(length=ncol(temp))
    for(j in 1:ncol(temp)){
        t_states[j]=toString(temp[2,j])

    }
    t_states=(unique(t_states))
    #this logic is current is set to reject data from more than one state.
    # It will also reject anything that appears to lack state data.
    if(length(t_states) !=  2){
        value=NA
    }else{
        s1_expr=as.vector(x=(temp[3, temp[2,]==t_states[1]]))
        s2_expr=as.vector(x=temp[3, temp[2,]==t_states[2]])
        print(class(s1_expr))
    #   med1= (median(s1_expr))
    #   med2= (median(s2_expr))
    #   if(is.na(med1[1]) || is.na(med2[1])){
    #       value=-1
        }#else{
    #       value=med1[1]/med2[1]
    #       print(value)
    #   }

    }
[1] "data.frame"
[1] "data.frame"
[1] "data.frame"

以下是“temp”的示例值:

         V1        V2          V3          V4
1 GSM506899 GSM506900   GSM506901   GSM506902
2 wild type wild type Zbtb20 null Zbtb20 null
3      99.3     98.24        66.2      102.42
4      55.8     20.11        22.9       16.98
5     159.6     63.46       102.5       67.17
6       166     54.73         215       49.46

数据框是列表。 即使你只选择一行数据,它仍然是一个列表。

尝试unlist 。 (假设你的“行”中的所有值都是数字,如果不是,则说明你有更大的问题。)

链接地址: http://www.djcxy.com/p/73895.html

上一篇: As.vector does not convert data.frame subset to vector

下一篇: Why are these numbers not equal?