Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 循环的输出不正确_R - Fatal编程技术网

R 循环的输出不正确

R 循环的输出不正确,r,R,我有两个表FDate和Task,如下所示: FDate Date Cycle Task 1: 1 90 D 2: 2 100 A 3: 3 130 B 4: 3 130 C 5: 4 180 <NA> 6: 5 200 A 7: 5 200 D 8: 6 230 <NA> Task Date Task 1 NA A 2 NA B 3

我有两个表
FDate
Task
,如下所示:

FDate
 Date Cycle Task
1:    1    90    D
2:    2   100    A
3:    3   130    B
4:    3   130    C
5:    4   180 <NA>
6:    5   200    A
7:    5   200    D
8:    6   230 <NA>
Task
 Date Task
1   NA    A
2   NA    B
3   NA    C
4    6    D
这是输出

 Date Cycle Task
1:    1    90    D
2:    2   100    A
3:    3   130    B
4:    3   130    C
5:    4   180 <NA>
6:    5   200    A
7:    5   200    D
8:    6   230    4
日期周期任务
1:190 D
2:2100 A
3:3130B
4:3130摄氏度
5:    4   180 
6:5200 A
7:5200D
8:    6   230    4

我希望输出是
D
,而不是
4
。我找不到问题出在哪里?

问题是该列是
factor
,它被强制为整数存储模式值。循环前将其转换为
字符

FDate$Task <- as.character(FDate$Task)
Task$Task <- as.character(Task$Task)

注意:将第二个data.table标识符更改为“df2”而不是“Task”,因为每个数据集中都有一列“Task”

您确定该
因子
列点。我尝试了一个因子,得到了
D
而不是
4
:/(我的意思是它有意义,但我无法复制)@M-M你的意思是你得到了4而不是D?OP希望输出为“D”而不是4Nah,我的意思是我在中读取数据,将
$Task
转换为factor,但仍然得到
D
!(我无法重现OP的错误)@M-M不清楚列的类别,但如果OP得到的是数值而不是字符,则意味着
因子
问题。让OP响应您可以使用以下命令共享数据集:
dput(head(FDate,8))
dput(head(Task,4))
?目前还不清楚是什么导致了这个问题,如果没有可复制的数据,就很难(如果不是不可能的话)确定。并给出一个真正有意义的标题
FDate$Task <- as.character(FDate$Task)
Task$Task <- as.character(Task$Task)
library(data.tabl)
FDate[na.omit(df2), Task := i.Task,on = .(Date)]
FDate
#   Date Cycle Task
#1:    1    90    D
#2:    2   100    A
#3:    3   130    B
#4:    3   130    C
#5:    4   180 <NA>
#6:    5   200    A
#7:    5   200    D
#8:    6   230    D