R 我的因子在矫揉造作时变成整数:我不';我不要这个

R 我的因子在矫揉造作时变成整数:我不';我不要这个,r,R,有一个数据框(第1帧)和一列(事实),该列由因子组成。我创建了一个新的数据框(第2帧),如下所示: Matching_list <- setNames(data.frame(matrix(ncol = 3, nrow = nrow(HH))), c("ProIDS", "Pol_Centre", "Dist")) Matching_list这里有一个完全试探性的解决方案(因为您没有提供任何可复制的数据) 假设您拥有此类数据: df1 <- data.frame(fact = LET

有一个数据框(第1帧)和一列(事实),该列由因子组成。我创建了一个新的数据框(第2帧),如下所示:

Matching_list <- setNames(data.frame(matrix(ncol = 3, nrow = nrow(HH))), c("ProIDS", "Pol_Centre", "Dist"))

Matching_list这里有一个完全试探性的解决方案(因为您没有提供任何可复制的数据)

假设您拥有此类数据:

df1 <- data.frame(fact = LETTERS[1:10])
现在进一步假设,如您所说,您有另一个数据帧,如下所示:

set.seed(100)
df2 <- data.frame(varX = rnorm(10))
但请注意,如果现在检查
df2
的结构,R已将
df2$fact
转换为字符变量:

str(df2)
'data.frame':   10 obs. of  2 variables:
 $ varX: num  -0.5022 0.1315 -0.0789 0.8868 0.117 ...
 $ fact: chr  "A" NA "A" NA ...

欢迎来到StackOverflow!请阅读相关信息以及如何给出建议。这将使其他人更容易帮助您。A)系数
在内部存储为整数。从这个意义上讲,你不会丢失任何信息。B) 
矩阵
只能保存一种类型的数据。如果需要混合列,还应使用
list
s(或
data.frame
,它们在内部作为列表列表处理):如果添加了。你可以让别人更容易找到并测试你问题的答案。这样你可以帮助别人来帮助你!谢谢你们!我想在下面分享我的代码样本(c中的I(1:nrow(Gps_家庭)){Matching_list[I,1]=Gps_家庭[which(矩阵_of_distance==min(矩阵_of_distance[I,]),arr.ind=T[1],1]Matching_list[I,2]=Gps_poll_cent_west_urban[which(矩阵_of_of_distance==min(矩阵_of_distance[I,]),arr.ind=T)[],1]匹配_list[I,3]=min](距离矩阵[i,])列[i]=Gps\u poll\u cent\u west\u urban[其中(距离矩阵=min(距离矩阵[i,]),arr.ind=T)[2],1]]
df2$fact <- ifelse(df2$varX < 0, levels(df1$fact)[1], NA) # if varX < 0 "A" else NA
df2
          varX fact
1  -0.50219235    A
2   0.13153117 <NA>
3  -0.07891709    A
4   0.88678481 <NA>
5   0.11697127 <NA>
6   0.31863009 <NA>
7  -0.58179068    A
8   0.71453271 <NA>
9  -0.82525943    A
10 -0.35986213    A
str(df2)
'data.frame':   10 obs. of  2 variables:
 $ varX: num  -0.5022 0.1315 -0.0789 0.8868 0.117 ...
 $ fact: chr  "A" NA "A" NA ...