我甚至无法弄清楚这里发生了什么,除了在删除一些行后,填充了NA
的行被添加到我的数据中。所以,我只是想完成我的工作。
mdata = data.table::fread("~/data.csv")
class(mdata) = "data.frame"
clusterID
列转换为系数:mdata$cluster_ID = as.factor(mdata$cluster_ID)
clusterID
:plyr::count(mdata$cluster_ID)
x freq
1 1 6100
2 2 1484
3 3 1925
...
38 29 3868
和行数:
original_n = nrow(mdata)
original_n
[1] 99412
NA
,但只是空文本(例如,它们就像x = ""
而不是此x = NA
)。所以我将它们转换为NA
s:mdata[mdata==""] = NA
到目前为止一切顺利。
mdata = mdata[mdata$var1 != "this",] #should remove 218 rows
nrow(mdata)
[1] 99194
original_n - nrow(mdata)
[1] 218
因此它删除了正确的行数。好。
但是,当我查看clusterID
列时,有174 NA
个用户无法使用,当您查看clusterID
3时,您会看到它已减少224(超过我删除的行数)。
plyr::count(mdata$cluster_ID)
x freq
1 1 6083
2 2 1484
3 3 1701
...
38 29 3868
39 <NA> 174
我尝试过使用其他导入方法(readr:read_csv
;基础read.csv
;在Excel中打开,保存为.xlsx,使用readxl::read_excel
导入),但没有工作
我检查了NA
行的样子,他们只是一堆NA
s:
temp = mdata[is.na(mdata$cluster_ID), ]
mean(!is.na(temp))
[1] 0
据我所知,当我删除带有NA
的行时,不知怎的,一堆行只会更改为mdata = mdata[mdata$var1 != "this",]
。我已经检查过,看起来每次都是相同的行。
出于保密原因,我无法发布数据,但是我们将非常感谢任何有助于了解这种情况的帮助。
如果它有所不同我正在运行Microsoft R Open:
Sys.info()
sysname
"Darwin"
release
"17.4.0"
version
"Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64"
machine
"x86_64"
sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.3
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] readxl_1.0.0 readr_1.1.1 RevoUtils_10.0.7
loaded via a namespace (and not attached):
[1] Rcpp_0.12.14 audio_0.1-5 assertthat_0.2.0 utf8_1.1.2 crayon_1.3.4
[6] cellranger_1.1.0 plyr_1.8.4 R6_2.2.2 magrittr_1.5 pillar_1.0.1
[11] cli_1.0.0 rlang_0.1.6 stringi_1.1.6 rstudioapi_0.7 data.table_1.10.4-3
[16] tools_3.4.3 stringr_1.2.0 hms_0.4.0 yaml_2.1.16 compiler_3.4.3
[21] pkgconfig_2.0.1 beepr_1.2 tibble_1.4.1
答案 0 :(得分:0)
我明白了。 mdata$var1
中有NA
个,所以当我mdata = mdata[mdata$var1 != "this",]
mdata$var1
NA
转换为NA
的所有行时System.out.println("SISTEM LOGIN");
System.out.println("INSERIRE NOMEUTENTE");
Scanner scan= new Scanner(System.in);
String user= scan.nextLine();
System.out.println("INSERIRE PASSWORD");
String pass= scan.nextLine();
try {
boolean log = true;
while(log) {
//conn db
Connection c = DriverManager.getConnection(url,usr,pswd);
//creaz statement
Statement ss = c.createStatement();
//creaz codice sql
String sql = " SELECT * FROM users WHERE user'" + user + "' && password='" + pass+ "' ";
ResultSet res = ss.executeQuery(sql);
if(res!=null) {
System.out.println("LOGIN");
log = false;
}
else System.out.println("LOGIN FAILE");
}
}
。也许只是我,但这似乎是真正错误的方法来处理缺少选择变量时的子集。