我试图从单个列中删除NAs,并将NAs替换为一组列中的中间值,但当我完成命令时,它只会打印整个数据集。没有错误消息,但是NAs没有被删除。我已经在这个阶段呆了一天了,所以如果能提供任何帮助,我们将不胜感激:)我使用的代码是
#as there is only 1 NA in the month columns we will remove that row so that it does not get replaced with the mean
water3[!is.na(water3$Month),]
#replace NA values with the median on ske
我想在R中编写一个for循环来替换数据帧中某一列的NA值,并在两个条件为真时将它们替换为同一列的值的平均值。当条件满足时,我想使用来自同一年和同一组的观察结果将平均值分配给NAs。我写了以下代码,但我正在努力编写条件。 missing <- which(is.na(df$price))
for (i in 1:36){
x <- df[missing,]group
y <- df[missing,]year
selection <- df[conditions??,]$price
df[missing,]$price <- mean(selection,
如果我有一个像这样的数据集,并且想要找出每一列的差异,其中有NAs保留NAs,并找出现有数字之间的差异。
x y
NA 8
NA 21
5 NA
7 NA
NA NA
0 NA
NA 30
13 8
13 NA
NA 3
所需的输出将是
x y
NA NA
NA 13
NA NA
2 NA
NA NA
-7 NA
NA 9
13 -22
0 NA
NA -5
尝试根据数据帧中的特定行条件用NA替换特定的列值。示例数据集(测试)和我尝试过的代码如下所示。注意,我的实际数据集要大得多,但实际上我需要用NA替换特定行(特定年份)中的特定列。在这个示例中,我尝试使用列索引来为2002年的第3:5列插入NAs,但结果是用NAs替换了列3:5中的所有值。我确实想使用列索引而不是列名,因为我的实际数据中有很多列。
test <- data.frame(YEAR=c(2000,2001,2002,2003,2004,2000,2001,2002,2003,2004),
zone=c('A','A','A'
我在awk中有一个问题,就是当第一列中的值匹配时,将file1中的两列中的一些值替换为file2中的值。
下面是一个例子:
我有:
file1 A 2012年3 B 2012年4 C 2012年9 D 2012年E 2012 7 F 2012年
file2 D 2007 12 F 2009 8 G 2000 4
所需的输出是当第1列中的值与第2和第3列中的值匹配时,我希望第2和第3列中的值被file2中的值替换,如下所示:
预期产出:2012年3 B 2012年4 C 2012年9 D 2007 12英2012 7 F 2009 8
我用了这段代码,我知道它有问题
awk 'BEGI
我有一个有三列的数据集:年份、城市、值,如下所示:
year = c(2010, 2013, 2010, 2013, 2013)
city = c("Berlin","Berlin", "Munich", "Munich", "Frankfurt")
value = c(1234, NA, NA, 6372, NA)
data <- data.frame(year, value1, value2)
year city value
1 2010 Berlin 1234
2 2013
我试图用0替换数据栏中的1000个NA值。该列仅由NAs和1s组成,如下所示:
Column
1 NA
2 1
3 NA
4 NA
5 NA
6 1
7 NA
...
我想让它看起来像这样:
Column
1 0
2 1
3 NA
4 0
5 NA
6 1
7 NA
...
我所使用的列有1000多行,因此最终将有0和NAs的空间。
我试过这样的方法:
is.na(df_col[sample(seq(nrow(is.na(df_col))), 1000), "Column"]) <-
假设您有一个包含9列的dataframe。您希望删除列5:9中所有NAs的情况,如果列1:4中有NAs,则根本不相关。
到目前为止,我已经找到了允许您删除任何5:9列中有NAs的行的函数,但我只需要删除列5:9中所有NAs的行。
我编写了自己的函数来完成这个任务,但是由于我有300k+行,所以非常慢。我在想有没有更有效的方法?这是我的密码:
remove.select.na<-function(x, cols){
nrm<-vector("numeric")
for (i in 1:nrow(x)){
if (sum(is.na(x[i,cols])
我试图用"N/A“替换表中某一列中的所有空值,但该列的数据类型为DATETIME,并且我不确定如何更改我的CASE语句,以便将所有空值替换为"N/A”。相关行标有星号。请帮帮我!
SELECT encounters.patient, encounters.encounterid, encounters.start,
extract(year from age(patients.birthdate, encounters.start)),
CASE
WHEN deathdate BETWEEN start AND stop THEN