从数据框中删除属性

时间:2018-09-27 08:49:16

标签: r phyloseq

我有以下数据框(从phyloseq包的tax_table对象转换而来)。

如何删除属性?

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="ehcache.xsd"
     updateCheck="true" 
     monitoring="autodetect"
     dynamicConfig="true">

<defaultCache
        eternal="false"
        timeToIdleSeconds="900"
        timeToLiveSeconds="900"
        diskSpoolBufferSizeMB="30"
        diskExpiryThreadIntervalSeconds="120"
        memoryStoreEvictionPolicy="LRU">
</defaultCache>

<cache name="fclmConfiguration"
    eternal="false"
    maxElementsInMemory="10000"
    overflowToDisk="false"
    diskPersistent="false"
    timeToIdleSeconds="0"
    timeToLiveSeconds="900"
    memoryStoreEvictionPolicy="LRU"
/>

2 个答案:

答案 0 :(得分:2)

通常,您可以使用attr函数来删除属性,方法是指定要删除的属性并将其设置为NULL。

假设您得到以下信息:

> str(my_df)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   107 obs. of  3 variables:
 $ case_no      : chr  "stuff" "more stuff" "other stuff" "residual stuff" ...
 $ region       : chr  "01" "02" "03" "04" ...
 $ petition     : chr  "RC" "RD" "RM" "RC" ...
 - attr(*, "label")= chr "NLRB7799"

您可以使用attr(my_df, "label") <- NULL

删除标签

使用attr(my_df, "class") <- "data.frame"指定所需的类,从而摆脱不必要的额外类

这对我来说效果很好。从其他软件(如SAS或Stata)导入数据时,属性标记会多次出现。 我不喜欢它们,因为它们在合并或绑定到其他数据框时给我带来麻烦。希望其他人会发现此方法有用。

答案 1 :(得分:1)

实际上下降的级别删除了所有属性。

> str(droplevels.data.frame(DT2_mat))
'data.frame':   5120 obs. of  7 variables:
 $ : Factor w/ 2 levels "Archaea","Bacteria": 2 2 2 2 2 2 2 2 2 2 ...
 $ : Factor w/ 28 levels "Acidobacteria",..: 2 2 2 2 2 2 2 2 2 2 ...
 $ : Factor w/ 60 levels "Acidimicrobiia",..: 3 3 3 3 3 3 3 3 3 3 ...
 $ : Factor w/ 108 levels "Acholeplasmatales",..: 29 29 29 29 29 29 29 29 29 29 ...
 $ : Factor w/ 216 levels "0319-6A21","0319-6G20",..: 58 58 58 58 58 58 58 58 58 58 ...
 $ : Factor w/ 699 levels "Abiotrophia",..: 173 173 173 173 173 173 173 173 173 173 ...
 $ : Factor w/ 4964 levels "Abiotrophia defectiva Score:0.87",..: 1613 1529 1449 1448 1565 1438 1563 1532 1623 1605 ...