我是R语言的初学者。我编写了一个运行良好的脚本。但是,从昨天开始,它不再识别我的变量了。我可以查看数据集,但无法执行任何分析。
tba_hba <- read_excel(k.file)
tba_hba
AMT E0 M `X-Kto` S1 S2 S3 S4
<chr> <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 TBA D0 T248~ X1.2.1~ 1 2 1 0
2 TBA D0 T248~ X1.2.1~ 1 2 1 0
3 TBA D0 T248~ X0.3.1~ 0 3 1 0
4 TBA D0 T248~ X0.3.1~ 0 3 1 0
5 TBA D0 T248~ X0.3.1~ 0 3 1 0
6 TBA D0 T248~ X0.3.1~ 0 3 1 0
7 TBA D0 T248~ X0.3.1~ 0 3 1 0
8 TBA D0 T248~ X0.3.1~ 0 3 1 0
count(tba_hba, S1)
Error in count(tba_hba, S1) : object 'S1' not found
我可以看到变量S1,但是无法对其进行计数。
使用read.xlsx时出现相同的错误。
有什么想法为什么从昨天开始就发生这种情况而没有更改我的数据?
编辑:这是我的数据:
structure(list(AMT = c("TBA", "TBA", "TBA", "TBA", "TBA", "TBA",
"TBA", "TBA", "TBA", "TBA", "TBA", "TBA", "TBA", "TBA", "TBA"
), E0 = c("D0", "D0", "D0", "D0", "D0", "D0", "D0", "D0", "D0",
"D0", "D0", "D0", "D0", "D0", "D0"), M = c("T248A15", "T248A15",
"T248A15", "T248A15", "T248A15", "T248A15", "T248A15", "T248A15",
"T248A15", "T248A15", "T248A15", "T248A15", "T248A15", "T248A15",
"T248A15"), S1 = c(1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
0), S2 = c(2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3), S3 = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), S4 = c(0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0), Projekt = c("Y02.9.8.1", "Y02.9.8.1",
"Y34.6.1.2", "Y01.6.1.1", "Y01.6.1.1", "Y05.6.1.1", "Y04.6.1.1",
"Y04.6.1.1", "Y05.6.1.1", "Y21.9.8.1", "Y23.9.8.1", "Y05.6.1.1",
"Y03.6.1.1", "Y03.6.1.1", "Y05.6.1.1")), row.names = c(NA, -15L
), class = c("tbl_df", "tbl", "data.frame"))
答案 0 :(得分:2)
我强烈猜测您不会调用您认为会的函数。试试:
dplyr::count(df, S1)
# # A tibble: 2 x 2
# S1 n
# <dbl> <int>
# 1 0 11
# 2 1 4
# The error message if a S_xy is not in the data:
dplyr::count(df, S_xy)
# Error: Column `S_xy` is unknown
答案 1 :(得分:1)
我的第一个猜测是从Excel读取文件时发生了某些情况。如果您按照问题中的说明读取了数据,那么它应该可以工作:
library("dplyr")
library("readr")
x <- (
"AMT E0 M `X-Kto` S1 S2 S3 S4
TBA D0 T248~ X1.2.1~ 1 2 1 0
TBA D0 T248~ X1.2.1~ 1 2 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0
TBA D0 T248~ X0.3.1~ 0 3 1 0")
tba_hba <- read_delim(x, delim=" ", trim_ws = TRUE)
count(tba_hba, S1)
选项trim_ws
在这里对于列名很重要,但是在read_excel
中,此参数默认为TRUE
。
然后@mnist提出了建议,即使用了另一个功能。将plyr与 d plyr混淆确实是一个合理的解释。
比较以下内容:
plyr::count(tba_hba, S1)
Error in count(tba_hba, S1) : object 'S1' not found
和:
dplyr::count(tba_hba, S1)
# A tibble: 2 x 2
S1 n
<dbl> <int>
1 0 6
2 1 2
要解决此问题,请检查软件包的加载顺序,或者更好的是使用::
语法。
答案 2 :(得分:0)
您最好先attach(the.data.set)
,然后再rm(list=ls())
或detach(the.data.set)
,而不要使用attach()
并使用$
table(tba_hba$S1)