我有以下数据框(从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"
/>
答案 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 ...