我有一个data.frame包含一些包含所有NA值的列,如何从data.frame中删除它们.
我可以使用这个功能吗?
na.omit(...)
Run Code Online (Sandbox Code Playgroud)
指定一些额外的参数?
我有一个非常大的矩阵,我知道它们的一些副本是重复的.所以我只想找到那些重复的colnames并从列中删除重复.我试过duplicate(),但它删除了重复的条目.有人会帮我在R中暗示这个吗?重点是,重复的colnames,可能没有重复的entires.
我有一个数据框,其中一些值为 NULL 或空。我想删除这些所有值为NULL或empty的列。应从数据框中删除列,而不仅仅是隐藏列。
我的头(df)看起来像 data=
VAR1 VAR2 VAR3 VAR4 VAR5 VAR6 VAR7
1 2R+ 52 1.05 0 0 30
2 2R+ 169 1.02 0 0 40
3 2R+ 83 NA 0 0 40
4 2R+ 98 1.16 0 0 40
5 2R+ 154 1.11 0 0 40
6 2R+ 111 NA 0 0 15
Run Code Online (Sandbox Code Playgroud)
数据帧包含超过 200 个变量,变量为空且零值不会连续出现。
我尝试估计平均 Col 并选择该列为 Null 或空,与删除“NA”进行类比(请参阅此处),但它不起作用。
df <- df[,colSums(is.na(df))<nrow(df)]
Run Code Online (Sandbox Code Playgroud)
我收到错误:“x”必须是至少二维的数组
有人可以给我一些帮助吗?谢谢!
我有一个广泛格式的参与者问卷答复数据框,每列代表一个特定的问题/项目.
数据框看起来像这样:
id <- c(1, 2, 3, 4)
Q1 <- c(NA, NA, NA, NA)
Q2 <- c(1, "", 4, 5)
Q3 <- c(NA, 2, 3, 4)
Q4 <- c("", "", 2, 2)
Q5 <- c("", "", "", "")
df <- data.frame(id, Q1, Q2, Q3, Q4, Q5)
Run Code Online (Sandbox Code Playgroud)
我希望R删除在每个行中具有所有值的列,这些行是(1)NA或(2)空白.因此,我不希望列Q1(完全由NAs组成)和列Q5(完全由""形式的空白组成).
根据这个帖子,我可以使用以下内容删除完全由NA组成的列:
df[, !apply(is.na(df), 2, all]
Run Code Online (Sandbox Code Playgroud)
但是,该解决方案不解决空白("").当我在dplyr管道中完成所有这些操作时,是否还有人可以解释如何将上述代码合并到dplyr管道中?
此时,我的dplyr管道如下所示:
df <- df %>%
select(relevant columns that I need)
Run Code Online (Sandbox Code Playgroud)
之后,我被困在这里并使用方括号[]来对非NA列进行子集化.
谢谢!非常感激.
我使用此命令删除所有值为 NA 的列。
testing5 <- subset(testing4,
select = -c(kurtosis_picth_belt, skewness_roll_belt,
skewness_roll_belt.1, min_yaw_belt, amplitude_yaw_belt,
kurtosis_roll_arm, kurtosis_picth_arm, kurtosis_yaw_arm,
skewness_roll_arm, skewness_pitch_arm, kurtosis_picth_dumbbell,
skewness_roll_dumbbell, skewness_pitch_dumbbell, min_yaw_dumbbell,
kurtosis_roll_forearm, kurtosis_picth_forearm, skewness_roll_forearm,
skewness_pitch_forearm))
Run Code Online (Sandbox Code Playgroud)
有没有更短的(程序化)方法?
谢谢和问候, 帕萨