ArcGIS中,数据框Data Frame中没有任何图层,为啥界面上会有一个数字出现?如何关掉这个数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS中,数据框Data Frame中没有任何图层,为啥界面上会有一个数字出现?如何关掉这个数字?相关的知识,希望对你有一定的参考价值。

用这个选中,直接删除就可以了

参考技术A 这是空间里的注记,用鼠标选择删除就行了追问

选择不了

本回答被提问者采纳
参考技术B 你肯定加载了什么数据了追问

我的图层管理器里面一个图层都没有啊 能加载什么数据呢?

参考技术C 这么神奇 见鬼了 参考技术D 每次打开都有吗?

如何用(data.frame)查找表中的值标签替换数据框中的数字代码?

【中文标题】如何用(data.frame)查找表中的值标签替换数据框中的数字代码?【英文标题】:how do I replace numeric codes in a data frame with value labels from a (data.frame) lookup table? 【发布时间】:2012-04-26 20:49:15 【问题描述】:

这是this question 的后续问题,最初受到this question 的启发,但并不完全相同。

这是我的情况。首先,我从数据库中提取一些数据,

df <- data.frame(id = c(1:6),
                 profession = c(1, 5, 4, NA, 0, 5))
   df
#  id profession
#  1          1
#  2          5
#  3          4
#  4         NA
#  5          0
#  6          5

其次,我提取了一个键表,其中包含有关职业代码的人类可读信息,

profession.codes <- data.frame(profession.code = c(1,2,3,4,5),
                               profession.label = c('Optometrists',
                               'Accountants', 'Veterinarians', 
                               'Financial analysts',  'Nurses'))                 
   profession.codes
#  profession.code   profession.label
#               1       Optometrists
#               2        Accountants
#               3      Veterinarians
#               4 Financial analysts
#               5             Nurses

现在,我想用profession.codes 中的标签覆盖df 中的profession 变量,最好使用plyr 包中的join,但我愿意接受任何智能解决方案。虽然我确实喜欢 ply 保留 x 的顺序。

我目前是这样做的,

# install.packages('plyr', dependencies = TRUE)
library(plyr)

profession.codes$profession <- profession.codes$profession.code
df <- join(df, profession.codes, by="profession")
# levels(df$profession.label)
df$profession.label <- factor(df$profession.label, 
   levels = c(levels(df$profession.label), 
   setdiff(df$profession, df$profession.code)))
# levels(df$profession.label)
df$profession.label[df$profession==0 ] <- 0
df$profession.code <- NULL
df$profession  <- NULL
names(df) <- c("id", "profession")
df
#  id         profession
#  1       Optometrists
#  2             Nurses
#  3 Financial analysts
#  4               <NA>
#  5                  0
#  6             Nurses

这就是我在不丢失NA0 的情况下覆盖profession 的方法。

问题是 0 可能是 17 或任何数字,我想以某种方式解释这一点。此外,如果可能的话,我还想缩短我的代码。

任何帮助将不胜感激。

谢谢, 埃里克

【问题讨论】:

不确定您的意思:“0 可能是 17 或任何数字,我想以某种方式说明这一点” @TylerRinker,在上面的示例中,df$profession 中只有一个值在profession.codes 中没有匹配的标签。在示例中,值为0,但也可能出现其他值(如果有人弄乱了我无法控制的数据库)。即使df$profession 中的多个值在profession.code 中没有匹配的标签,您的解决方案仍然有效,这很棒。 【参考方案1】:

这是基础中的一种方法:

df <- data.frame(id = c(1:6),
                 profession = c(1, 5, 4, NA, 0, 5))

pc <- data.frame(profession.code = c(1,2,3,4,5),
                               profession.label = c('Optometrists',
                               'Accountants', 'Veterinarians', 
                               'Financial analysts',  'Nurses'))  


df$new <- as.character(pc[match(df$profession,  
    pc$profession.code), 'profession.label'])
df[is.na(df$new), 'new'] <- df[is.na(df$new), 'profession'] 
df$new <- as.factor(df$new)
df

产量:

  id profession                new
1  1          1       Optometrists
2  2          5             Nurses
3  3          4 Financial analysts
4  4         NA               <NA>
5  5          0                  0
6  6          5             Nurses

【讨论】:

我没有覆盖您建议的列,因为当您可以创建一个新列时,我不喜欢覆盖某些内容。如果您想覆盖您的原始列,请更改我的解决方案来执行此操作。 同意 match() 解决方案并且不覆盖。 @TylerRinker,感谢您提供解决方案。我喜欢你使用底座。我也不喜欢覆盖,但在这种特定情况下我必须这样做。问题是很难不进行替换,就像您在解决方案 (df[which(is.na(df$new)), 'new'] &lt;- df[which(is.na(df$new)), 'profession']) 的第二行中所做的那样,而不使用原始变量中的信息。要修改您的解决方案,我将添加一行删除$new,例如df$profession &lt;- as.factor(df$new); df$new &lt;- NULL,除非有更智能的解决方案?谢谢! 是的,这可能是我处理它或将原始 df$profession 分配给重复对象并在您正确识别为需要原始 df$professional 的行中使用它的方式。

以上是关于ArcGIS中,数据框Data Frame中没有任何图层,为啥界面上会有一个数字出现?如何关掉这个数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何用(data.frame)查找表中的值标签替换数据框中的数字代码?

是否可以 unlist() 嵌套数据框,同时保留 data.frame 中的其他列?

如何从 data.frame 中删除列?

将多个数据框放入列表(智能方式)[重复]

r语言怎么调用data.frame数据框的某列数据

R语言Data Frame数据框常用操作