Compare multiple columns in 2 different dataframes in R










2















I am trying to compare multiple columns in two different dataframes in R. This has been addressed previously on the forum (Compare group of two columns and return index matches R) but this is a different scenario: I am trying to compare if a column in dataframe 1 is between the range of 2 columns in dataframe 2. Functions like match, merge, join, intersect won't work here. I have been trying to use purr::pluck but didn't get far. The dataframes are of different sizes.




Below is an example:




temp1.df <- mtcars

temp2.df <- data.frame(
Cyl = sample (4:8, 100, replace = TRUE),
Start = sample (1:22, 100, replace = TRUE),
End = sample (1:22, 100, replace = TRUE)
)

temp1.df$cyl <- as.character(temp1.df$cyl)
temp2.df$Cyl <- as.character(temp2.df$Cyl)



My attempt:




temp1.df <- temp1.df %>% mutate (new_mpg = case_when (
temp1.df$cyl %in% temp2.df$Cyl & temp2.df$Start <= temp1.df$mpg & temp2.df$End >= temp1.df$mpg ~ 1
))



Error:




Error in mutate_impl(.data, dots) : 
Column `new_mpg` must be length 32 (the number of rows) or one, not 100



Expected Result:



  1. Compare temp1.df$cyl and temp2.df$Cyl. If they are match then -->

  2. Check if temp1.df$mpg is between temp2.df$Start and temp2.df$End -->

  3. if it is, then create a new variable new_mpg with value of 1.



It's hard to show the exact expected output here.



I realize I could loop this so for each row of temp1.df but the original temp2.df has over 250,000 rows. An efficient solution would be much appreciated.



Thanks










share|improve this question




























    2















    I am trying to compare multiple columns in two different dataframes in R. This has been addressed previously on the forum (Compare group of two columns and return index matches R) but this is a different scenario: I am trying to compare if a column in dataframe 1 is between the range of 2 columns in dataframe 2. Functions like match, merge, join, intersect won't work here. I have been trying to use purr::pluck but didn't get far. The dataframes are of different sizes.




    Below is an example:




    temp1.df <- mtcars

    temp2.df <- data.frame(
    Cyl = sample (4:8, 100, replace = TRUE),
    Start = sample (1:22, 100, replace = TRUE),
    End = sample (1:22, 100, replace = TRUE)
    )

    temp1.df$cyl <- as.character(temp1.df$cyl)
    temp2.df$Cyl <- as.character(temp2.df$Cyl)



    My attempt:




    temp1.df <- temp1.df %>% mutate (new_mpg = case_when (
    temp1.df$cyl %in% temp2.df$Cyl & temp2.df$Start <= temp1.df$mpg & temp2.df$End >= temp1.df$mpg ~ 1
    ))



    Error:




    Error in mutate_impl(.data, dots) : 
    Column `new_mpg` must be length 32 (the number of rows) or one, not 100



    Expected Result:



    1. Compare temp1.df$cyl and temp2.df$Cyl. If they are match then -->

    2. Check if temp1.df$mpg is between temp2.df$Start and temp2.df$End -->

    3. if it is, then create a new variable new_mpg with value of 1.



    It's hard to show the exact expected output here.



    I realize I could loop this so for each row of temp1.df but the original temp2.df has over 250,000 rows. An efficient solution would be much appreciated.



    Thanks










    share|improve this question


























      2












      2








      2








      I am trying to compare multiple columns in two different dataframes in R. This has been addressed previously on the forum (Compare group of two columns and return index matches R) but this is a different scenario: I am trying to compare if a column in dataframe 1 is between the range of 2 columns in dataframe 2. Functions like match, merge, join, intersect won't work here. I have been trying to use purr::pluck but didn't get far. The dataframes are of different sizes.




      Below is an example:




      temp1.df <- mtcars

      temp2.df <- data.frame(
      Cyl = sample (4:8, 100, replace = TRUE),
      Start = sample (1:22, 100, replace = TRUE),
      End = sample (1:22, 100, replace = TRUE)
      )

      temp1.df$cyl <- as.character(temp1.df$cyl)
      temp2.df$Cyl <- as.character(temp2.df$Cyl)



      My attempt:




      temp1.df <- temp1.df %>% mutate (new_mpg = case_when (
      temp1.df$cyl %in% temp2.df$Cyl & temp2.df$Start <= temp1.df$mpg & temp2.df$End >= temp1.df$mpg ~ 1
      ))



      Error:




      Error in mutate_impl(.data, dots) : 
      Column `new_mpg` must be length 32 (the number of rows) or one, not 100



      Expected Result:



      1. Compare temp1.df$cyl and temp2.df$Cyl. If they are match then -->

      2. Check if temp1.df$mpg is between temp2.df$Start and temp2.df$End -->

      3. if it is, then create a new variable new_mpg with value of 1.



      It's hard to show the exact expected output here.



      I realize I could loop this so for each row of temp1.df but the original temp2.df has over 250,000 rows. An efficient solution would be much appreciated.



      Thanks










      share|improve this question
















      I am trying to compare multiple columns in two different dataframes in R. This has been addressed previously on the forum (Compare group of two columns and return index matches R) but this is a different scenario: I am trying to compare if a column in dataframe 1 is between the range of 2 columns in dataframe 2. Functions like match, merge, join, intersect won't work here. I have been trying to use purr::pluck but didn't get far. The dataframes are of different sizes.




      Below is an example:




      temp1.df <- mtcars

      temp2.df <- data.frame(
      Cyl = sample (4:8, 100, replace = TRUE),
      Start = sample (1:22, 100, replace = TRUE),
      End = sample (1:22, 100, replace = TRUE)
      )

      temp1.df$cyl <- as.character(temp1.df$cyl)
      temp2.df$Cyl <- as.character(temp2.df$Cyl)



      My attempt:




      temp1.df <- temp1.df %>% mutate (new_mpg = case_when (
      temp1.df$cyl %in% temp2.df$Cyl & temp2.df$Start <= temp1.df$mpg & temp2.df$End >= temp1.df$mpg ~ 1
      ))



      Error:




      Error in mutate_impl(.data, dots) : 
      Column `new_mpg` must be length 32 (the number of rows) or one, not 100



      Expected Result:



      1. Compare temp1.df$cyl and temp2.df$Cyl. If they are match then -->

      2. Check if temp1.df$mpg is between temp2.df$Start and temp2.df$End -->

      3. if it is, then create a new variable new_mpg with value of 1.



      It's hard to show the exact expected output here.



      I realize I could loop this so for each row of temp1.df but the original temp2.df has over 250,000 rows. An efficient solution would be much appreciated.



      Thanks







      r dataframe dplyr compare






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 14 '18 at 21:42







      KP1

















      asked Nov 14 '18 at 19:44









      KP1KP1

      525




      525






















          1 Answer
          1






          active

          oldest

          votes


















          1














          temp1.df$new_mpg<-apply(temp1.df, 1, function(x) 
          temp<-temp2.df[temp2.df$Cyl==x[2],]
          ifelse(any(apply(temp, 1, function(y)
          dplyr::between(as.numeric(x[1]),as.numeric(y[2]),as.numeric(y[3]))
          )),1,0)
          )


          Note that this makes some assumptions about the organization of your actual data (in particular, I can't call on the column names within apply, so I'm using indexes - which may very well change, so you might want to rearrange your data between receiving it and calling apply, or maybe changing the organization of it within apply, e.g., by apply(temp1.df[,c("mpg","cyl")]....



          At any rate, this breaks your data set into lines, and each line is compared to the a subset of the second dataset with the same Cyl count. Within this subset, it checks if any of the mpg for this line falls between (from dplyr) Start and End, and returns 1 if yes (or 0 if no). All these ones and zeros are then returned as a (named) vector, which can be placed into temp1.df$new_mpg.



          I'm guessing there's a way to do this with rowwise, but I could never get it to work properly...






          share|improve this answer

























          • The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

            – KP1
            Nov 16 '18 at 16:12












          • Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

            – KP1
            Nov 16 '18 at 16:16











          • Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

            – iod
            Nov 16 '18 at 16:23











          • For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

            – KP1
            Nov 16 '18 at 17:02












          • yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

            – iod
            Nov 16 '18 at 17:16










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307707%2fcompare-multiple-columns-in-2-different-dataframes-in-r%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          temp1.df$new_mpg<-apply(temp1.df, 1, function(x) 
          temp<-temp2.df[temp2.df$Cyl==x[2],]
          ifelse(any(apply(temp, 1, function(y)
          dplyr::between(as.numeric(x[1]),as.numeric(y[2]),as.numeric(y[3]))
          )),1,0)
          )


          Note that this makes some assumptions about the organization of your actual data (in particular, I can't call on the column names within apply, so I'm using indexes - which may very well change, so you might want to rearrange your data between receiving it and calling apply, or maybe changing the organization of it within apply, e.g., by apply(temp1.df[,c("mpg","cyl")]....



          At any rate, this breaks your data set into lines, and each line is compared to the a subset of the second dataset with the same Cyl count. Within this subset, it checks if any of the mpg for this line falls between (from dplyr) Start and End, and returns 1 if yes (or 0 if no). All these ones and zeros are then returned as a (named) vector, which can be placed into temp1.df$new_mpg.



          I'm guessing there's a way to do this with rowwise, but I could never get it to work properly...






          share|improve this answer

























          • The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

            – KP1
            Nov 16 '18 at 16:12












          • Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

            – KP1
            Nov 16 '18 at 16:16











          • Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

            – iod
            Nov 16 '18 at 16:23











          • For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

            – KP1
            Nov 16 '18 at 17:02












          • yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

            – iod
            Nov 16 '18 at 17:16















          1














          temp1.df$new_mpg<-apply(temp1.df, 1, function(x) 
          temp<-temp2.df[temp2.df$Cyl==x[2],]
          ifelse(any(apply(temp, 1, function(y)
          dplyr::between(as.numeric(x[1]),as.numeric(y[2]),as.numeric(y[3]))
          )),1,0)
          )


          Note that this makes some assumptions about the organization of your actual data (in particular, I can't call on the column names within apply, so I'm using indexes - which may very well change, so you might want to rearrange your data between receiving it and calling apply, or maybe changing the organization of it within apply, e.g., by apply(temp1.df[,c("mpg","cyl")]....



          At any rate, this breaks your data set into lines, and each line is compared to the a subset of the second dataset with the same Cyl count. Within this subset, it checks if any of the mpg for this line falls between (from dplyr) Start and End, and returns 1 if yes (or 0 if no). All these ones and zeros are then returned as a (named) vector, which can be placed into temp1.df$new_mpg.



          I'm guessing there's a way to do this with rowwise, but I could never get it to work properly...






          share|improve this answer

























          • The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

            – KP1
            Nov 16 '18 at 16:12












          • Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

            – KP1
            Nov 16 '18 at 16:16











          • Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

            – iod
            Nov 16 '18 at 16:23











          • For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

            – KP1
            Nov 16 '18 at 17:02












          • yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

            – iod
            Nov 16 '18 at 17:16













          1












          1








          1







          temp1.df$new_mpg<-apply(temp1.df, 1, function(x) 
          temp<-temp2.df[temp2.df$Cyl==x[2],]
          ifelse(any(apply(temp, 1, function(y)
          dplyr::between(as.numeric(x[1]),as.numeric(y[2]),as.numeric(y[3]))
          )),1,0)
          )


          Note that this makes some assumptions about the organization of your actual data (in particular, I can't call on the column names within apply, so I'm using indexes - which may very well change, so you might want to rearrange your data between receiving it and calling apply, or maybe changing the organization of it within apply, e.g., by apply(temp1.df[,c("mpg","cyl")]....



          At any rate, this breaks your data set into lines, and each line is compared to the a subset of the second dataset with the same Cyl count. Within this subset, it checks if any of the mpg for this line falls between (from dplyr) Start and End, and returns 1 if yes (or 0 if no). All these ones and zeros are then returned as a (named) vector, which can be placed into temp1.df$new_mpg.



          I'm guessing there's a way to do this with rowwise, but I could never get it to work properly...






          share|improve this answer















          temp1.df$new_mpg<-apply(temp1.df, 1, function(x) 
          temp<-temp2.df[temp2.df$Cyl==x[2],]
          ifelse(any(apply(temp, 1, function(y)
          dplyr::between(as.numeric(x[1]),as.numeric(y[2]),as.numeric(y[3]))
          )),1,0)
          )


          Note that this makes some assumptions about the organization of your actual data (in particular, I can't call on the column names within apply, so I'm using indexes - which may very well change, so you might want to rearrange your data between receiving it and calling apply, or maybe changing the organization of it within apply, e.g., by apply(temp1.df[,c("mpg","cyl")]....



          At any rate, this breaks your data set into lines, and each line is compared to the a subset of the second dataset with the same Cyl count. Within this subset, it checks if any of the mpg for this line falls between (from dplyr) Start and End, and returns 1 if yes (or 0 if no). All these ones and zeros are then returned as a (named) vector, which can be placed into temp1.df$new_mpg.



          I'm guessing there's a way to do this with rowwise, but I could never get it to work properly...







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 16 '18 at 16:22

























          answered Nov 14 '18 at 20:01









          iodiod

          3,9332723




          3,9332723












          • The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

            – KP1
            Nov 16 '18 at 16:12












          • Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

            – KP1
            Nov 16 '18 at 16:16











          • Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

            – iod
            Nov 16 '18 at 16:23











          • For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

            – KP1
            Nov 16 '18 at 17:02












          • yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

            – iod
            Nov 16 '18 at 17:16

















          • The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

            – KP1
            Nov 16 '18 at 16:12












          • Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

            – KP1
            Nov 16 '18 at 16:16











          • Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

            – iod
            Nov 16 '18 at 16:23











          • For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

            – KP1
            Nov 16 '18 at 17:02












          • yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

            – iod
            Nov 16 '18 at 17:16
















          The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

          – KP1
          Nov 16 '18 at 16:12






          The solution works when cyl and Cyl are numeric. I overlooked that my cyl and Cyl in the original dataset are characters. If so the above solution does not work. Gives ` Error in dplyr::between(x[1], y[2], y[3]) : Not compatible with requested type: [type=character; target=double]. `

          – KP1
          Nov 16 '18 at 16:12














          Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

          – KP1
          Nov 16 '18 at 16:16





          Here's the code with column names. temp1.df$cyl <- as.character(temp1.df$cyl) temp2.df$Cyl <- as.character(temp2.df$Cyl) temp1.df$mpg <- as.numeric(temp1.df$mpg) temp2.df$Start <- as.numeric(temp2.df$Start) temp2.df$End <- as.numeric(temp2.df$End) temp1.df$new_mpg<-apply(temp1.df [,c("mpg", "cyl")], 1, function(x) temp<-temp2.df[temp2.df$Cyl==x["cyl"],] print (temp) ifelse(any(apply(temp, 1, function(y) dplyr::between(x["mpg"],y["Start"],y["End"]) )),1,0) )

          – KP1
          Nov 16 '18 at 16:16













          Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

          – iod
          Nov 16 '18 at 16:23





          Just add as.numeric() to each of the arguments in between. I've adjusted the code above.

          – iod
          Nov 16 '18 at 16:23













          For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

          – KP1
          Nov 16 '18 at 17:02






          For a datasets with 1101 and 256833 observations it takes a while but it works great. Thanks.

          – KP1
          Nov 16 '18 at 17:02














          yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

          – iod
          Nov 16 '18 at 17:16





          yeah, it's an apply within an apply - not surprised it's taking a while... Glad it works for you nevertheless.

          – iod
          Nov 16 '18 at 17:16



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53307707%2fcompare-multiple-columns-in-2-different-dataframes-in-r%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Barbados

          How to read a connectionString WITH PROVIDER in .NET Core?

          Node.js Script on GitHub Pages or Amazon S3