我有一个数据集,用于查看蜗牛的两种寄生虫,我想创建一个新列,说明蜗牛是否没有寄生虫“无”、类型 1“TYPE1”、类型 2“TYPE2”或两种寄生虫“双”。
Block Weight Parasite1 Parasite2
1 1 1.23 1 1
2 1 3.14 1 1
3 1 2.55 1 0
4 1 2.67 0 1
5 1 3.36 0 1
6 1 3.16 0 0
7 1 3.41 0 1
8 1 2.47 0 1
9 1 1.56 0 1
10 1 2.66 1 1
我想过使用 if 或 if else 但我似乎无法让它工作?
最佳答案
您可以使用一些 if else 语句,但我认为这更容易
dat <- read.table(header = TRUE, text="row Block Weight Parasite1 Parasite2
1 1 1.23 1 1
2 1 3.14 1 1
3 1 2.55 1 0
4 1 2.67 0 1
5 1 3.36 0 1
6 1 3.16 0 0
7 1 3.41 0 1
8 1 2.47 0 1
9 1 1.56 0 1
10 1 2.66 1 1")[,-1]
within(dat, {
type <- interaction(Parasite1, Parasite2, sep = '')
type <- factor(type, levels = c('11','10','01','00'),
labels = c('DUAL','TYPE1','TYPE2','None'))
})
# Block Weight Parasite1 Parasite2 type
# 1 1 1.23 1 1 DUAL
# 2 1 3.14 1 1 DUAL
# 3 1 2.55 1 0 TYPE1
# 4 1 2.67 0 1 TYPE2
# 5 1 3.36 0 1 TYPE2
# 6 1 3.16 0 0 None
# 7 1 3.41 0 1 TYPE2
# 8 1 2.47 0 1 TYPE2
# 9 1 1.56 0 1 TYPE2
# 10 1 2.66 1 1 DUAL
关于r - 在 R 中创建一个新列来查看前两列中的数据并分配因子水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27020610/