我有两个数据帧,我希望将它们匹配在一起并返回元素,但我得到的问题是,如果存在匹配,它将返回第一个元素,而不是匹配的元素。 我试过这段代码,但它返回元素的索引 data3 <- data1 %>%
mutate(score = lapply(M,function(x){ifelse (f<-(match(x, data2$words)), f )}))
Term score
1 I NA
2 A B 3, 7
3 A 3
4 Z NA
5 D 4
6 B 7 代码如下: data1 <-
我有一些行NA的计数练习。
下面是一个包含cat和id变量的示例数据集。
df <- data.frame(cat=c("A","A","A","B","B","C","C","C","C"),
id = c(11,12,13,NA,NA,21,21,23,24))
> df
cat id
1 A 11
2 A 12
3 A 13
4 B NA
5 B NA
6 C 21
7
假设我有下面的data.table
library(data.table)
DT = data.table(Col1 = LETTERS[1:10], Col2 = c(1,4,2,3,6,NA,4,2, 5, 4))
DT
Col1 Col2
1: A 1
2: B 4
3: C 2
4: D 3
5: E 6
6: F NA
7: G 4
8: H 2
9: I 5
10: J 4
现在,我想将Col2中的4 and NA值替换为999
在实际
我有一个像这样的数据文件:
Date = seq(as.Date("2022/1/1"), by = "day", length.out = 10)
x = c(rnorm(9),NA)
y = c(NA,0,rnorm(4),6,0,0,10)
z = c(rnorm(4),0,0,NA,NA,3,2)
d = tibble(Date,x,y,z);d
# A tibble: 10 x 4
Date x y z
<date> <dbl>
我正在尝试映射数据帧列表,但我做错了一些事情。我的环境中有多个数据帧,我的目标是用NA值替换所有的空字符串,我正在做的事情如下: # create a list of my dataframes
lst <- ls()
lst<- lst[sapply(lst, function(x) is.data.frame(get(x)))]
# second, map my function on all of my dataframes
map(lst, ~.x %>% mutate_if(is.character, list(~na_if(.,"")))) 我
我有一个样本数据集,它看起来类似于下面的数据集:
d= data.frame(a = c(1,5,56,4,9),
b = c(0,0,NA,0,NA),
c = c(98,67,NA,3,7),
d = c(0,0,0,0,0),
e = c(NA,NA,NA,NA,NA))
这将是:
| a | b | c | d | e |
|----|:--:|---:|---|----|
| 1 | 0 | 98 | 0 | NA |
| 5 | 0 | 67 |
我无法用read.csv()读取表,因为它有不同行长的列。
我的数据如下:
x y
1 cat small
2 dog medium
3 mouse
我想用NA填写较短的列,这样我就可以创建如下所示的数据框架:
x y
1 cat small
2 dog medium
3 mouse NA
read.scv文档有一个参数"Fill=TRUE",但是这个函数只处理列长度不同的表。
向你问好,里基
我有一个有几十列和几千行的数据帧。我想以8变为NA的方式重新编码最大值为8的数值列,以8变为NA而9变为9999的方式重新编码具有最大值9的数值列。例如, mydf <- data.frame(a = c(1, 2, 8, 9), b = c(7, 8, 9, 10), c = c(4, 5, 6, 9), d = c(5, 6, 7, 8), e = c("a", "b", "c", "d"))
> mydf
a b c d e
1 1 7 4 5 a
2 2 8 5 6 b
3 8 9 6 7 c