Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.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
String 在R中的数据帧中的两个字符之间添加空格_String_R_Character_Dataframe - Fatal编程技术网

String 在R中的数据帧中的两个字符之间添加空格

String 在R中的数据帧中的两个字符之间添加空格,string,r,character,dataframe,String,R,Character,Dataframe,我有一个数据帧,其中每个单元格都是2个字符串(即:“AA”、“BC”、“CD”),我试图在这两个字符之间放置空格,其中NA值保持不变。我似乎无法理解这一点。有什么帮助吗 以下是一个示例数据帧: df <- data.frame(col1=c("AB", "CD", "EF"), col2=c("AA", "BB", "CC"), col3=c("XX", "YY", NA)) df这里有一个方法 df2 <- data.frame(lapply(df, function(x) {

我有一个数据帧,其中每个单元格都是2个字符串(即:“AA”、“BC”、“CD”),我试图在这两个字符之间放置空格,其中NA值保持不变。我似乎无法理解这一点。有什么帮助吗

以下是一个示例数据帧:

 df <- data.frame(col1=c("AB", "CD", "EF"), col2=c("AA", "BB", "CC"), col3=c("XX", "YY", NA))
df这里有一个方法

df2 <- data.frame(lapply(df, function(x) {
  levels(x) <- gsub("(.)(.)", "\\1 \\2", levels(x))
  return(x)
}))

df2

#   col1 col2 col3
# 1  A B  A A  X X
# 2  C D  B B  Y Y
# 3  E F  C C <NA>
df2这里有一种方法

df2 <- data.frame(lapply(df, function(x) {
  levels(x) <- gsub("(.)(.)", "\\1 \\2", levels(x))
  return(x)
}))

df2

#   col1 col2 col3
# 1  A B  A A  X X
# 2  C D  B B  Y Y
# 3  E F  C C <NA>

df2如果您的data.frame列都是因子,那么您可以在级别上工作

as.data.frame(lapply(df, function(x){
 .l <- unlist(lapply(strsplit(levels(x),''), paste, collapse = ' '))
   levels(x) <- .l
 x}))

如果您的data.frame列都是factors,那么您可以在级别上工作

as.data.frame(lapply(df, function(x){
 .l <- unlist(lapply(strsplit(levels(x),''), paste, collapse = ' '))
   levels(x) <- .l
 x}))

如果它像您所展示的那样简单,那么这是一种方法:

data.frame(lapply(df, function(x){
    ifelse(is.na(x), NA, 
    paste(substring(x, 1, 1), substring(x, 2)))
}))

如果它像您所展示的那样简单,那么这是一种方法:

data.frame(lapply(df, function(x){
    ifelse(is.na(x), NA, 
    paste(substring(x, 1, 1), substring(x, 2)))
}))
你试过这个吗

df <- data.frame(col1=c("A B", "C D", "E F"), col2=c("A A", "B B", "C C"), col3=c("X X", "Y Y", NA))
然后您可以使用此选项并适当地使用
粘贴

您尝试过此选项吗

df <- data.frame(col1=c("A B", "C D", "E F"), col2=c("A A", "B B", "C C"), col3=c("X X", "Y Y", NA))

然后您可以使用此选项并适当地使用
粘贴

您可以安全地假设stackoverfow上的每个答案都应该是动态的。您可以安全地假设stackoverfow上的每个答案都应该是动态的。